Otimizando a Execução de Cófigo-Fonte PHP

Otimizando a Execução
de Código-Fonte

CC Attribution-ShareAlike 3.0 Unported L...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Quem?!
Er Galvão Abbott é o Presidente da ABRAPHP – Associaç...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Objetivo
Esta palestra tem por objetivo demonstrar técnicas ...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Profiling
→ xdebug/KCachegrind

↑Confiabilidade
↓GUI Nativa ...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

HowTo – xdebug/KCacheGrind
Painéis a esquerda: Flat Profile
...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

HowTo – xdebug/KCacheGrind – Flat Profile
Tempo gasto na fun...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

HowTo – xdebug/KCacheGrind – Callee Map
Representação visual...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

HowTo – xdebug/KCacheGrind – Callee Map
Tempo e quantidade d...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Dicas - Atualize o PHP!
PHP 5.2 → 5.3*

* Ref.: Documentação...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Dicas - Atualize o PHP!
PHP 5.3 → 5.4*

→ Melhorias em requi...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Dicas - Atualize o PHP!
PHP 5.4 → 5.5*

→ opcode Cache nativ...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Dicas – Boas práticas
Boas práticas
Use um Autoloader
Sessõe...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Dicas - Configurações
Configurações

realpath_cache_size – A...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Conclusões
Conclusões

↑ Profiling (xdebug);
↑ Boas Práticas...
Otimizando a Execução de Cófigo-Fonte PHP

www.galvao.eti.br

Obrigado!

? Dúvidas?
↓ Críticas?
↑ Elogios?!

CC Attributio...
Próximos SlideShares
Carregando em…5
×

Otimizando a execução de código-fonte PHP

948 visualizações

Publicada em

Como detectar e minimizar problemas de performance em aplicações PHP

Publicada em: Tecnologia
1 comentário
5 gostaram
Estatísticas
Notas
  • Ótimo material, Parabéns Er Galvao.

    Walker de Alencar
    CTO
       Responder 
    Tem certeza que deseja  Sim  Não
    Insira sua mensagem aqui
Sem downloads
Visualizações
Visualizações totais
948
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
19
Comentários
1
Gostaram
5
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Otimizando a execução de código-fonte PHP

  1. 1. Otimizando a Execução de Cófigo-Fonte PHP Otimizando a Execução de Código-Fonte CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 1 / 15 www.galvao.eti.br
  2. 2. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Quem?! Er Galvão Abbott é o Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP, Diretor da PHP Conference Brasil, o principal evento de PHP da América Latina e fundador do PHPBR, Grupo de Usuários com mais de 1.200 associados. Trabalha há mais de 19 anos desenvolvendo sistemas e aplicações com interface web, sendo 14 anos com PHP e 6 anos com Zend Framework. Trabalhou com diversas empresas de grande porte, tanto nacionais como internacionais. Palestra em eventos e ministra cursos em diversas instituições, bem como in company. Site: http://www.galvao.eti.br/ Twitter: @galvao Slides e Documentos: http://slideshare.net/ergalvao https://speakerdeck.com/galvao Fork me @ http://github.com/galvao CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 2 / 15
  3. 3. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Objetivo Esta palestra tem por objetivo demonstrar técnicas de programação PHP que minimizam custos de performance, bem como analisar detalhes relativos a performance de aplicações desenvolvidas com a linguagem. Serão apresentados os seguintes tópicos: → Detectando o uso de recursos consumidos pela aplicação → Profiling → xdebug/KCachegrind → xhprof/xhgui → Configurações do PHP relacionadas a performance → Opções de código-fonte: há diferenças relevantes entre formas de código? → Conclusões CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 3 / 15
  4. 4. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Profiling → xdebug/KCachegrind ↑Confiabilidade ↓GUI Nativa (Compatibilidade) ↑Extensa Documentação ↑Intrusão mínima / inexistente → xhprof/xhgui ↑Facebook ↑GUI Web ↑Maior controle via PHP X ↓Dependências (MongoDB) ↓Documentação (Extensão, Way Back) ↓Maior intrusão no código-fonte ↓Documentação Confusa (xhgui) CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 4 / 15
  5. 5. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br HowTo – xdebug/KCacheGrind Painéis a esquerda: Flat Profile Painéis a direita: Quais funções chamaram/foram chamadas pela função CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 5 / 15
  6. 6. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br HowTo – xdebug/KCacheGrind – Flat Profile Tempo gasto na função (sem “filhas”) Quantas vezes a função foi chamada CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 6 / 15
  7. 7. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br HowTo – xdebug/KCacheGrind – Callee Map Representação visual do peso das funções/métodos executados. CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 7 / 15
  8. 8. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br HowTo – xdebug/KCacheGrind – Callee Map Tempo e quantidade de chamados da função selecionada CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 8 / 15
  9. 9. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Dicas - Atualize o PHP! PHP 5.2 → 5.3* * Ref.: Documentação – Considerações de Performance – Garbage Collector CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 9 / 15
  10. 10. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Dicas - Atualize o PHP! PHP 5.3 → 5.4* → Melhorias em requisições FastCGI → Melhorias no Gerenciamento de Memória → Melhoria no tempo de inicialização/encerramento → Uso de CPU aproximadamente 15% menor → Uso de memória aproximadamente 20% menor → Latência em requisição → resposta melhorada em aproximadamente 14% → Melhoria geral de performance de 10-15% * Ref.: Rasmus Lerdorf – PHP Frameworks Day 2013 CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 10 / 15
  11. 11. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Dicas - Atualize o PHP! PHP 5.4 → 5.5* → opcode Cache nativo → Pilha de chamada pré-alocada pelo compilador → Execução melhorada de chamadas aninhadas * Ref.: Rasmus Lerdorf – PHP Conference Argentina CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 11 / 15
  12. 12. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Dicas – Boas práticas Boas práticas Use um Autoloader Sessões no DB Output Buffering Evitar Getters & Setters simples Evitar cópias de variáveis Evitar queries SQL dentro de loops Evitar execuções desnecessárias de funções dentro de loops CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 12 / 15
  13. 13. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Dicas - Configurações Configurações realpath_cache_size – Afeta operações com arquivos Se há muitas operações de arquivos, aumente realpath_cache_ttl – Duração do cache de realpath Se arquivos raramente mudam, aumente (< 5.4) register_long_arrays – Se os arrays HTTP_*_VARS devem ser utilizados Desative register_argc_argv – Para execução de scripts de terminal Desative include_path – Path para inclusão de arquivos Mantenha o mais curto possível CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 13 / 15
  14. 14. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Conclusões Conclusões ↑ Profiling (xdebug); ↑ Boas Práticas; ↑ Tunning (PHP) ↑ Ferramentas específicas que agregam (Memcached, Gearman, etc...) ↑/↓ Ferramentas alternativas que substituem (Hack, HHVM, Phalcon/Zephyr, NginX) ↓ Alterações específicas de código-fonte* * Sobre opções de código-fonte: http://phpbench.com/ CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 14 / 15
  15. 15. Otimizando a Execução de Cófigo-Fonte PHP www.galvao.eti.br Obrigado! ? Dúvidas? ↓ Críticas? ↑ Elogios?! CC Attribution-ShareAlike 3.0 Unported License by Er Galvão Abbott - 2/23/14 - 15 / 15

×