Todo desenvolvedor precisa ter a consciência de que é preciso otimizar o código desde o início da codificação. Seguir boas práticas de codificação é o ponto de partida para escrever um código otimizado e legível.
Separei 10 dicas de otimização de código para ajudar no aumento de performance.
1. Use funções nativas do PHP
Sempre que possível, utilize as funções nativas do PHP ao invés de escrever suas próprias funções para atingir o objetivo. Caso ainda não esteja totalmente familiarizado com a linguagem, procure no manual se a função que você quer existe.
2. Prefira utilizar aspas simples
Aspas simples ( ‘ ) é mais rápido que aspas duplas ( “ ). Quando você usa a aspa simples entende-se que o conteúdo é um string, porém quando você utiliza aspas duplas, o compilador verifica se existe a presença de alguma variável dentro da string e isto adiciona uma sobrecarga desnecessária.
3. Use funções de string apropriadas
A função str_replace é mais rápida que o preg_replace, mas a strtr é quatro vezes mais rápida que a str_replace.
4. Defina o valor para a variável
Por exemplo, o seguinte irá degradar o desempenho.
for ($ i = 0; i <count($num); $ i + +) { echo $num; }
O script abaixo terá um desempenho muito melhor.
$total = count($num); for ($ i = 0; i <$total; $ i + +) { echo $total; }
5. Não crie Classes sem necessidade
Não crie Classes e Métodos até que seja realmente necessário e principalmente que possam ser reutilizados.
6. Use técnicas de caching
Utilize cache para reduzir as conexões/carga ao banco de dados e a compilação script. Uma boa opção para reduzir as conexões/carga ao banco de dados é o Memcache e o APC para o cache opcode e otimização do código intermediário.
7. Feche a conexão
Adquira o hábito de fechar a conexão com o banco de dados; isto economiza memória.
8. Reduza os acessos ao BD
Reduza a quantidade de acessos ao banco de dados. Faça consultas utilizando o menor número de conexões possível. Por exemplo:
$con = mysql_connect ("localhost", "username", "senha", "database"); if (mysql_connect_errno ()) { echo "Falha ao conectar ao MySQL"; mysql_connect_error (); } function insertValue ($ val) { mysql_query( "INSERT INTO Table ( $val )" ); } for ($ i = 0; $ i <99; $ i + +) { // Invocando a função para inserir os dados insertValue $(i); } // Fechando a conexão como a melhor prática! mysql_close ($con);
O script acima é muito mais lento do que o script abaixo:
$con = mysql_connect ("localhost", "user", "passwd", "database"); if (mysql_connect_errno ()) { echo "Falha ao conectar ao MySQL"; mysql_connect_error (); } function insertValues ( $val ) { // Inserindo com todos os 99 valores, utilizando apenas um INSERT. $ query = "INSERT INTO Table ( ".implode(',', $ val)." )"; mysql_query ($con, $query); } $dados = array(); for ($ i = 0; $i<99; $ i + +) { // Criação do vetor com os dados. $ dados[] = $i; } // Invocando a função para inserir os dados insertValues ($ dados); // Fechando a conexão como uma boa prática! mysql_close ($con);
9. Use JSON
Use JSON em vez de XML sempre que trabalhar com aplicativos web. Existem funções nativas no PHP para trabalhar com JSON, como json_encode () e json_decode () e estas funções são extremamente rápidas.
10. Use Isset
Sempre que possível, use isset () em vez de usar strlen(), count(), ou sizeof() para verificar se o valor retornado é maior que 0. Por exemplo, você tem uma função que retorna uma variável, quer verificar se possui valores ou não, use o seguinte:
if ( isset($returnValue) ) { // Fazer algo aqui }
Neste caso, use o bloco de código acima, em vez de o seguinte:
if (count($returnValue) 0) { // Fazer algo aqui }