Segunda-feira, 02 de junho de 2008 às 11h00

12 dicas para otimizar seus códigos PHP

É 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

19 comentários

 Caio Vinicio
02/06/2008 11h16

Muito legal

Valeu mesmo, concerteza vai ajudar muitos programadores como eu.

 Igor Escobar
02/06/2008 11h20

Foi um prazer Caio.

 Igor Escobar
02/06/2008 11h20

Foi um prazer Caio.

 Igor Escobar
02/06/2008 11h19

;)

Foi um prazer Caio.

 Helton Eduardo Ritter
02/06/2008 13h32

Rasmus lerdor 9º FISL palestra

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
02/06/2008 20h15

Alternativa ao require_once

Belo artigo, simples e útil! :)

Qual seria a melhor alternativa ao require_once??

 Jean Verissimo
11/06/2008 11h20

Aspas, como e quando usar?

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.

 Marcelo Sabadini
27/08/2008 00h12

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 =)

 Adler Medrado
14/09/2008 18h23

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.

 Adler Medrado
14/09/2008 18h23

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.

 Raphael França Marques
11/06/2008 13h46

duvida

9. Supressão de erro com @ é muito lento;

então como faço pra suprimir os erros sem usar @?

 Gustavo Andrade
11/06/2008 22h31

Outras alternativas

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~
10/07/2008 11h35

duvida/comentario sobre item 10

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~
10/07/2008 11h35

Duvida sobre o item 10

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

 Marcelo Sabadini
27/08/2008 00h04

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.

 Marcelo Sabadini
27/08/2008 00h09

&

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...

 Charles Schaefer
03/09/2008 12h06

Algumas considerações

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).

 Aziz Vicentini
16/09/2008 11h28

Muito bom, mas...

é 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 ;)

 Felipe Corrêa
21/02/2009 00h04

Muito bom!

Concerteza vai ajudar muita gente com essas dicas, parabéns pela iniciativa! :D

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Igor Escobar é CST em Desenvolvimento de Sistemas para Internet pelo Instituto Brasileiro de Tecnologia Avançada. Desenvolvedor Web da Visie - Padrões Web e também escreve em outros veículos como o Web Insider e mantém um blog (blog.igorescobar.com).

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.