Dicas para um PHP mais veloz

Salve

Viu? não demorou muito para um novo artigo :D
Vou passar a vocês uma materia que peguei há algum tempo em inglês… mais abaixo coloco as referências.

Trata-se de uma lista de dicas para o desenvolvimento PHP. Aproveitem.

1. echo
Por questão de performance: use ‘echo’ ao invés de ‘print’, e se for usar muitas concatenações, lembre-se de usar ‘,’, como faríamos com argumentos em uma função, ao invés de ‘.’. Em testes simples a diferença é pouco sensível, mas em uma operação em que um grande conteúdo será jogado para o buffer de saída faz muita diferença.

2. chamada de funções em condições de iterações
Imagine o seguinte código:

<?
$a = array(1,2,3);
for($i = 0; $i < count($a); $i++){
//...
}
?>

Sabemos que count será executado 3 vezes. Imagine se $a tivesse 10000 itens? Podemos melhorar isso se fizermos o seguinte:

<?
$a = array(1,2,3);
$c = count($a);
for($i = 0; $i < $c; $i++){
//...
}
?>

Reduzimos a chamada a count a uma unica vez sempre. Qual o nosso ganho? mais da metade do tempo, fazendo uma iteração com 10000 itens. Isso se você precisa que realmente seja um for. Se for uma iteração em um array, como é este caso, voce vai se surpreender se usar foreach.

<?
$a = array(1,2,3);
foreach($a as $i => $each){
//...
}
?>

3. armazenar strings para echo
Você realmente precisa ter em uma variável tudo o que vai “echoar”? Se não for necessário armazenar, “echoe” diretamente a string

<?
echo "Faça isso<br />";
$s = "Ao invés disso";
echo $s;
?>

4. notação de strings
Você sabe a diferença de e para o PHP? o primeiro (aspas simples) armazenam a string como você escrever nela. O segundo permite o uso de metacarateres (\n para quebras de linha, por exemplo), uso de variáveis (“$var é uma variável”), portanto o PHP tem que verificar o que há nesse contexto para só então armazenar a string. O ganho em performance não é tão sensível, mas para um script lento, qualquer ajuda vale muito.

5. str_replace vs ereg_replace vs preg_replace
Taí um teste que me surpreendeu quando fiz a primeira vez. Quando for simplesmente trocar uma sentença por outra em uma string (sem o uso de uma expressão regular mais complexa), utilize o str_replace: é ela faz o trabalho das outras duas em aproximadamente 40% do tempo.

Senhores (e senhoras, por que não?), essas é a primaria parte da série de 3 no original, que vou postar nos próximos dias. Ao final, adicionarei algumas dicas próprias. Abaixo seguem os links para os três capitulos.

tips-for-faster-php-scripts
more tips for faster php scripts
even more tips for faster php script

Sugiro também que dêem uma olhada em meus bookmarks no del.icio.us

Até o próximo artigo

apenas um comentário

  1. Maicon on

    Muito bom Draco :)


Leave a reply