42
Dicas para aumentar a performance de um software PHP Almir Neto – [email protected] 1º dev/net http://www.aslgo.org.br/dev/net Goiânia, 08 de Novembro de 2008

[deprecated]Dicas para aumentar a performance de um software PHP

Embed Size (px)

DESCRIPTION

Slides used at 1º /dev/net. The slides shows tips on how to improve PHP software performance.

Citation preview

Page 1: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir Neto – [email protected]

1º dev/net

http://www.aslgo.org.br/dev/net

Goiânia, 08 de Novembro de 2008

Page 2: [deprecated]Dicas para aumentar a performance de um software PHP

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

Page 3: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

1 - Sempre declare métodos como estáticos

O fator de otimização é de 4x

Page 4: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

2 - echo é mais rápido que print

http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Page 5: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

3 – Utilize echo com vários parâmetros. Não concatene

strings.

echo(“Moro em ”, $cidade, “/”, $uf);

Page 6: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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

Page 7: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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

Page 8: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

6 – Tente não usar métodos magicos, como: __get, __set,

__autoload

Page 9: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 10: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

8 - Use caminhos completos em includes e requires

O PHP gasta menos tempo resolvendo os caminhos.

Page 11: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

9 – str_replace é mais rápido que preg_replace, mas strtr é

ainda 4x mais rápido que str_replace.

Page 12: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

10 – É melhor usar switch/case do que multiplos if’s e else.

Page 13: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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

Page 14: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 15: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

13 – Feche as conexões com o banco de dados após finalizar

sua utilização

Page 16: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 17: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

15 – Mensagens de erro deixam a aplicação lenta.

Page 18: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 19: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

17 – Incrementar uma variável local é mais rápido que uma

global

Page 20: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

18 – Incrementar uma variável global é 2x mais lento que em

uma variável local.

Page 21: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

19 – Incrementar um atributo ( $this->var++) é 3x mais lento

que uma variável local.

Page 22: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

20 – Incrementar uma variável local não definida é de 9x a 10x mais lento do que uma variável

local pré-inicializada.

Page 23: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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

Page 24: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

22 – Métodos de classes filhas são mais rápidos que métodos

da classe base.

Page 25: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 26: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 27: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 28: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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 "Mais rápido!";

Page 29: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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;

Page 30: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 31: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

29 – Arrays são mais rápidos que classes.

Sempre que possível utilize arrays ao invés de classes.

Page 32: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

30 – Não divida muito os métodos. Menor quantidade de métodos = menos chamadas de

métodos.

Page 33: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 34: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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

Page 35: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 36: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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.

Page 37: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

35 – Utilize o servidor de otimização da Zend

Com o Zend Optimizer seus scripts podem ser otimizados em até 50%.

Page 38: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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

Page 39: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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

Page 40: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Almir [email protected]

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/comparing_php_script_performance_on_linux_and_windows

Page 41: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Bibliografia / Agradecimentos• Artigo em Inglês:

- Reinhold Weberhttp://reinholdweber.com/?p=3

• Artigo Traduzido:- Lucas StephanouContribuiçõ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

• Paesslerhttp://www.paessler.com/webstress/sample_performance_tests/comparing_php_script_performance_on_linux_and_windows

Almir [email protected]

Page 42: [deprecated]Dicas para aumentar a performance de um software PHP

Dicas para aumentar a performance de um software PHP

Fim

Almir [email protected]