[deprecated]Dicas para aumentar a performance de um software PHP
1. Dicas para aumentar a performance de
um software PHP
Almir Neto – almirneto@gmail.com
1º dev/net
http://www.aslgo.org.br/dev/net
Goiânia, 08 de Novembro de 2008
2. Dicas para aumentar a performance de
um software PHP
Grupo de Desenvolvedores PHP de Goiás
Lista de Discussão
●
Troca de Conhecimentos
●
Encontros
●
Palestras
●
Eventos
●
http://www.php.org.br
●
http://www.gophp.com.br
●
3. Dicas para aumentar a performance de um software PHP
1 - Sempre declare métodos
como estáticos
O fator de otimização é de 4x
Almir Neto
almirneto@gmail.com
4. Dicas para aumentar a performance de um software PHP
2 - echo é mais rápido que print
http://www.faqts.com/knowledge_base/vie
w.phtml/aid/1/fid/40
Almir Neto
almirneto@gmail.com
5. Dicas para aumentar a performance de um software PHP
3 – Utilize echo com vários
parâmetros. Não concatene
strings.
echo(“Moro em ”, $cidade, “/”, $uf);
Almir Neto
almirneto@gmail.com
6. Dicas para aumentar a performance de um software PHP
4 – Defina o valor máximo de um
laço de repetição FOR antes de
sua definição
//Não usar
for($i=0; $i < count($array); $i++)
//Use
$max_for = count($array);
for($i=0; $i < $max_for; $i++)
Almir Neto
almirneto@gmail.com
7. Dicas para aumentar a performance de um software PHP
5 – utilize o método unset() em
variáveis que não serão mais
utilizadas, principalmente em
arrays.
O método unset() libera a variável da
memória, fazendo com que o PHP tenha
mais memória para trabalhar
Almir Neto
almirneto@gmail.com
8. Dicas para aumentar a performance de um software PHP
6 – Tente não usar métodos
magicos, como: __get, __set,
__autoload
Almir Neto
almirneto@gmail.com
9. Dicas para aumentar a performance de um software PHP
7 – include() é mais rápido que
require().
Além disso não utilize include_once() ou
require_once(), já que o PHP faz uma
série de verificações ao utilizar esses
métodos.
Almir Neto
almirneto@gmail.com
10. Dicas para aumentar a performance de um software PHP
8 - Use caminhos completos em
includes e requires
O PHP gasta menos tempo resolvendo os
caminhos.
Almir Neto
almirneto@gmail.com
11. Dicas para aumentar a performance de um software PHP
9 – str_replace é mais rápido
que preg_replace, mas strtr é
ainda 4x mais rápido que
str_replace.
Almir Neto
almirneto@gmail.com
12. Dicas para aumentar a performance de um software PHP
10 – É melhor usar switch/case
do que multiplos if’s e else.
Almir Neto
almirneto@gmail.com
13. Dicas para aumentar a performance de um software PHP
11 - Usar supressão de erros
com @ na frente da função é
muito lento.
Erros podem ser suprimidos na
configuração do PHP ou com funções
específicas para essa finalidade como
display_errors().
Almir Neto
almirneto@gmail.com
14. Dicas para aumentar a performance de um software PHP
12 – Ative o mod_deflate do
apache.
O mod_deflate compacta os arquivos que
serão enviados para o navegador do
cliente, tornando a resposta mais rápida.
Almir Neto
almirneto@gmail.com
15. Dicas para aumentar a performance de um software PHP
13 – Feche as conexões com o
banco de dados após finalizar
sua utilização
Almir Neto
almirneto@gmail.com
16. Dicas para aumentar a performance de um software PHP
14 – $row[’id’] é 7x mais rapido
que $row[id]
Ao colocar o id entre aspas, o PHP sabe
que se trata de uma string e não precisa
fazer conversões.
Almir Neto
almirneto@gmail.com
17. Dicas para aumentar a performance de um software PHP
15 – Mensagens de erro deixam
a aplicação lenta.
Almir Neto
almirneto@gmail.com
18. Dicas para aumentar a performance de um software PHP
16 – Não use funcões dentro de
loops
for ($x=0; $x < count($array); $x)
A função count() é chamada em cada
iteração.
Almir Neto
almirneto@gmail.com
19. Dicas para aumentar a performance de um software PHP
17 – Incrementar uma variável
local é mais rápido que uma
global
Almir Neto
almirneto@gmail.com
20. Dicas para aumentar a performance de um software PHP
18 – Incrementar uma variável
global é 2x mais lento que em
uma variável local.
Almir Neto
almirneto@gmail.com
21. Dicas para aumentar a performance de um software PHP
19 – Incrementar um atributo
( $this->var++) é 3x mais lento
que uma variável local.
Almir Neto
almirneto@gmail.com
22. Dicas para aumentar a performance de um software PHP
20 – Incrementar uma variável
local não definida é de 9x a 10x
mais lento do que uma variável
local pré-inicializada.
Almir Neto
almirneto@gmail.com
23. Dicas para aumentar a performance de um software PHP
21 – Declarar uma variável
global sem usá-la em uma
função deixa a aplicação lenta.
O PHP provavelmente faz um checagem
para ver se existe a nível global
Almir Neto
almirneto@gmail.com
24. Dicas para aumentar a performance de um software PHP
22 – Métodos de classes filhas
são mais rápidos que métodos
da classe base.
Almir Neto
almirneto@gmail.com
25. Dicas para aumentar a performance de um software PHP
23 – Quando for utilizar uma
string sem variáveis, prefira
aspas simples ' do que aspas
duplas “.
Dessa maneira o PHP não precisa procurar
caracteres especiais a serem interpretados.
Almir Neto
almirneto@gmail.com
26. Dicas para aumentar a performance de um software PHP
24 – Procure utilizar somente
HTML quando possível.
Dessa maneira o programa fica até 10x mais
rápido pois os caracteres HTML não são
interpretados pelo PHP, indo diretamente
para o navegador do cliente.
Almir Neto
almirneto@gmail.com
27. Dicas para aumentar a performance de um software PHP
25 – Utilize uma solução de
cache.
Os scripts PHP são recompilados a cada
requisição. Com uma solução de cache essa
recompilação não é feita a todo o tempo.
Almir Neto
almirneto@gmail.com
28. Dicas para aumentar a performance de um software PHP
26 – Prefira utilizar isset() ao
invés de strlen() para checar o
tamanho de uma string.
//Não usar
if(srtlen($var) < 5) echo “Lento!”;
//Use
if (!isset($var{5})) echo quot;Mais rápido!quot;;
Almir Neto
almirneto@gmail.com
29. Dicas para aumentar a performance de um software PHP
27 – Ao incrementar um valor,
prefira ++$i do que $i++ quando
possível.
Utilizar $i++ faz com que o PHP execute uma
operação a mais do que ++$i;
Almir Neto
almirneto@gmail.com
30. Dicas para aumentar a performance de um software PHP
28 – Nem tudo precisa ser POO.
Sistemas POO são geralmente mais lentos
pois chamadas a métodos e objetos geram
um grande consumo de memória.
Almir Neto
almirneto@gmail.com
31. Dicas para aumentar a performance de um software PHP
29 – Arrays são mais rápidos
que classes.
Sempre que possível utilize arrays ao invés
de classes.
Almir Neto
almirneto@gmail.com
32. Dicas para aumentar a performance de um software PHP
30 – Não divida muito os
métodos. Menor quantidade de
métodos = menos chamadas de
métodos.
Almir Neto
almirneto@gmail.com
33. Dicas para aumentar a performance de um software PHP
31 - Escreva suas funções em C
O PHP permite a escrita de funções em C e
utilizá-las como extensão do PHP. Dessa
maneira a velocidade aumenta
consideravelmente.
Almir Neto
almirneto@gmail.com
34. Dicas para aumentar a performance de um software PHP
32 – Utilize o módulo mod_gzip
do Apache
Com esse módulo ativo seus dados são
comprimidos e a transferência de dados
diminui em até 80%.
Almir Neto
almirneto@gmail.com
35. Dicas para aumentar a performance de um software PHP
33 – Configure o Apache de
acordo com suas necessidades
O Apache permite uma série de
configurações que pode fazer com que seu
sistema fique bem mais rápido.
Almir Neto
almirneto@gmail.com
36. Dicas para aumentar a performance de um software PHP
34 – Configure o IIS de acordo
com suas necessidades
O IIS também tem configurações que fazem
com que os sistemas funcionem de maneira
eficaz.
Almir Neto
almirneto@gmail.com
37. Dicas para aumentar a performance de um software PHP
35 – Utilize o servidor de
otimização da Zend
Com o Zend Optimizer seus scripts podem
ser otimizados em até 50%.
Almir Neto
almirneto@gmail.com
38. Dicas para aumentar a performance de um software PHP
36 – Utilize as funcões de Output
Buffer
Imprimir informações várias vezes pode
deixar um script lento. Com as funções de
Output Buffer, as informações são
armazenadas na memória e exibidas de uma
só vez.
http://php.net/manual/en/book.outcontrol.php
Almir Neto
almirneto@gmail.com
39. Dicas para aumentar a performance de um software PHP
37 – Utilize um sistema de Profile
para medir o tempo de cada
parte do código
A extensão Xdebug faz bem esse trabalho.
http://xdebug.org/docs/profiler
Almir Neto
almirneto@gmail.com
40. Dicas para aumentar a performance de um software PHP
38 – Use Linux!!
Testes utilizando Linux/Apache e
Windows/Apache mostram que o Linux
chega a ser 7x mais rápido que o Windows
para interpretar PHP.
http://www.paessler.com/webstress/sample_performance_tests/co
mparing_php_script_performance_on_linux_and_windows
Almir Neto
almirneto@gmail.com
41. Dicas para aumentar a performance de um software PHP
Bibliografia / Agradecimentos
• Artigo em Inglês:
- Reinhold Weber
http://reinholdweber.com/?p=3
• Artigo Traduzido:
- Lucas Stephanou
Contribuições: Pablo Sánchez
http://blog.lucas-ts.com/programacao/traducao-39-dicas-de-perfomance-php/
• Dicas de otimização do servidor:
http://phplens.com/lens/php-book/optimizing-debugging-php.php
• Artigos da IBM sobre PHP:
http://www.ibm.com/developerworks/opensource/top-projects/php.html
http://www.ibm.com/developerworks/views/opensource/libraryview.jsp?
search_by=make+php+apps+fast
• Paessler
http://www.paessler.com/webstress/sample_performance_tests/comparing_
php_script_performance_on_linux_and_windows
Almir Neto
almirneto@gmail.com
42. Dicas para aumentar a performance de um software PHP
Fim
Almir Neto
almirneto@gmail.com