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

Preview:

DESCRIPTION

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

Citation preview

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

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

1 - Sempre declare métodos como estáticos

O fator de otimização é de 4x

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

2 - echo é mais rápido que print

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

strings.

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

__autoload

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

8 - Use caminhos completos em includes e requires

O PHP gasta menos tempo resolvendo os caminhos.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

ainda 4x mais rápido que str_replace.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

sua utilização

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

global

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

uma variável local.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

que uma variável local.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

local pré-inicializada.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

da classe base.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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!";

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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;

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

métodos.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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.

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

Dicas para aumentar a performance de um software PHP

Almir Netoalmirneto@gmail.com

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

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 Netoalmirneto@gmail.com

Dicas para aumentar a performance de um software PHP

Fim

Almir Netoalmirneto@gmail.com

Recommended