É sempre útil ler algumas dicas rápidas para melhorar a sua codificação. Geralmente temos vícios que adquirimos no dia-a-dia que, sem sabermos, tornam o nosso código mais lento.
Seguem abaixo 12 dicas para melhorar o processamento dos seus códigos PHP.
1. Se um método pode ser static, declare-o como static! O desempenho aumenta 4 vezes;
2. Evite utilizar metódos mágicos como __get, __set e __autoload, se possível;
3. require_once() é dispensável e demanda bastante memória;
4. Use caminhos completos (full path) nos includes e requires, pois é gasto menos tempo resolvendo os caminhos do sistema operacional;
5. Se você quer descobrir o tempo em que o script começou a ser executado, é preferível utilizar $_SERVER[´REQUEST_TIME´] do que time();
6. Veja se pode utilizar strncasecmp, strpbrk e stripos ao invés de regex;
7. str_replace é mais rápido que preg_replace, mas strtr é 4 vezes mais rápido que str_replace;
8. Se uma função, como de substituição de strings, aceitar tanto arrays como caracteres simples como argumentos, e se a sua lista de argumentos não é muito longa, considere fazer algumas declarações redundantes de substituição, passando um caractere por vez, ao invés de uma linha de código que aceita arrays como argumentos de busca e substituição;
9. Supressão de erro com @ é muito lento;
10. $row[´id´] é 7 vezes mais rápido que $row[id];
11. Mensagens de erro demandam mais processamento;
12. Não utilize funções dentro de loops, como por exemplo: for ($x=0; $x < count($array); $x). A função count() é chamada todas as vezes que o loop é executado.;
Fonte:http://www.moskalyuk.com/blog/php-optimization-tips/1272
Valeu mesmo, concerteza vai ajudar muitos programadores como eu.
Foi um prazer Caio.
Foi um prazer Caio.
Essa do require_once() eu aboli depois da palestra do cara na FISL deste ano.
O problema são as funções dentro de laços, as vezes não se consegue contornar... Boas dicas.
Gustavo Andrade
Belo artigo, simples e útil! :)
Qual seria a melhor alternativa ao require_once??
Existe um outro texto também com 43 dicas.
Ele foi escrito por Reinhold Weber http://reinholdweber.com/?p=3 e traduzido em português por Lucas Stephanou http://blog.lucas-ts.com/programacao/traducao-39-dicas-de-perfomance-php/.
Pessoal,
Aproveitando as digas do Igor, gostaria de saber em que momento deverá ser usado aspas simples (') e aspas dupla ("), se alguém puder compartilhar, agradeço.
Ola...
Kra.. acho(eu disse q acho) q não existe um momento certo pra usar ' ou ". Eu particularmente, soh uso aspas simples pra acessar array e quando vou colocar HTML em uma variável(apenas para não ter q escapar as aspas duplas).
Se alguem souber mais sobre o assunto por favor se pronuncie =)
Aspas simples é usado quando sua string for literal. Por exemplo: $nome = 'Adler Medrado';
Já aspas duplas é quando sua string pode ter variáveis a serem interpretadas, por exemplo:
$eu = 'Adler Medrado';
$nome = "O nome é: $eu";
Resultando em: O nome é Adler Medrado
Se você colocar uma variável entre aspas simples, ela não será interpretada, por exemplo:
$nome = 'O nome é: $eu';
Resultando em: O nome é $eu
Por esse motivo, usar aspas simples em detrimento de aspas duplas torna o código mais rápido.
Espero ter ajudado.
Aspas simples é usado quando sua string for literal. Por exemplo: $nome = 'Adler Medrado';
Já aspas duplas é quando sua string pode ter variáveis a serem interpretadas, por exemplo:
$eu = 'Adler Medrado';
$nome = "O nome é: $eu";
Resultando em: O nome é Adler Medrado
Se você colocar uma variável entre aspas simples, ela não será interpretada, por exemplo:
$nome = 'O nome é: $eu';
Resultando em: O nome é $eu
Por esse motivo, usar aspas simples em detrimento de aspas duplas torna o código mais rápido.
Espero ter ajudado.
9. Supressão de erro com @ é muito lento;
então como faço pra suprimir os erros sem usar @?
Gustavo Andrade
Igor, que soluções vc recomenda usar no lugar de require_once e o @ para suprimir os erro como o Raphael mencionou??
Abraço!
DragaO~ DragaO~
Bom dia,
muito bom artigo, algumas coisas eu jah usava "por natureza", outras eu vou tentar evitar sempre que puder, mas me surgiu a seguinte duvida :
analisando o trecho de codigo abaixo
<?
$var = "algo";
$row[$var];
?>
de acordo com o item 10, este meu exemplo se encaixaria no "mais rapido" ou no "mais devagar" ?
Abraço
DragaO~ DragaO~
Bom dia,
muito bom artigo, algumas coisas eu jah usava "por natureza", outras eu vou tentar evitar sempre que puder, mas me surgiu a seguinte duvida :
analisando o trecho de codigo abaixo
<?
$var = "algo";
$row[$var];
?>
de acordo com o item 10, este meu exemplo se encaixaria no "mais rapido" ou no "mais devagar" ?
Abraço
Mais rápido.. pois $var é uma String.
Kra.. se usar $row[algo] dependendo de uma configuração no php.ini(q me deu um branco agora e não lembro) o código nem iria rodar.
Eu li uma vez que quando puder usar referência tmb ajuda muito no desempenho... por exemplo, uma função q comprara dois valores... ao inves dela receber os parametros $a e $b, ela receberia &$a e &$b.Tipo assim:
function comparaValores(&$a, &$b){
// bla bla bla
}
pq desta forma, quando o codigo entrar na função, as variáveis $a e $b vão apenas apontar para o endereço de memória das variáveis originais..
Nunca testei pra ver se tem ganho no desempenho... mas desde então tenho usado referencias quando possivel...
* se alterar a variável que aponta para outra, obviamente a 'as duas' vão mudar o valor...
Perguntaram sobre o uso de aspas e apóstrofos. Utilizar aspas simples sempre que possível é mais rápido, pois evita q o PHP tenha de interpretar o que tem dentro da string. Aspas duplas só quando for necessário utilizar seqüências de escape (\n, \t, etc).
é bom ver esse tipo de texto, mas ele deveria explicar pq fazer ou não fazer tal procedimento pq muitas pessoas com pouca experiência em php não entendem pq um procedimento acaba sendo mais lento do que outro ;)
Concerteza vai ajudar muita gente com essas dicas, parabéns pela iniciativa! :D
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.