$30 off During Our Annual Pro Sale. View Details »

Medindo a Performance de Códigos PHP

Medindo a Performance de Códigos PHP

Jonata Weber

November 25, 2016
Tweet

More Decks by Jonata Weber

Other Decks in Technology

Transcript

  1. Medindo a Performance de Códigos PHP Por Jonata Weber

  2. @JonataWeber

  3. www.app2sales.com

  4. None
  5. Performance Computer performance is the amount of work accomplished by

    a computer system.
  6. Aspects of performance • Availability • Response Time • Processing

    Speed • Latency • Bandwidth • Throughtput • Scalability
  7. Pick any two Cheap Good Fast

  8. Development vs Production

  9. Tools

  10. Faker

  11. Profile Before Optimizing

  12. $then = microtime(); myFunc(); $now = microtime(); echo sprintf("Elapsed: %f",

    $now - $then); There's a better way, right? :)
  13. Apache Benchmarking $ ab -n 100 -c 10 http://localhost:8000

  14. HTTP Benchmarking $ wrk -t12 -c400 -d30s http://localhost:8000

  15. Testing High Availability

  16. Load testing tool

  17. None
  18. Profiling

  19. None
  20. Install the xdebug $ pecl install xdebug

  21. Starting the Profiler (php.ini) xdebug.profiler_enable=1 xdebug.profiler_output_dir xdebug.profiler_enable_trigger=1 More informations: https://xdebug.org/docs/profiler

  22. Profiler Viewer

  23. Profiler Viewer (in the browser)

  24. Flame Graphs

  25. XHProf: A Hierarchical Profiler for PHP

  26. None
  27. None
  28. None
  29. None
  30. Demo

  31. Problemas comuns

  32. Problemas comuns • Arquitetura • Workload

  33. Arquitetura • Sem cache; • Hardware mal dimensionado; • Aplicação

    single thread; • Latência de rede não prevista.
  34. Workload • Mais usuários que o esperado; • Cache mal

    planejado.
  35. Otimização precoce, fazer ou não fazer, eis a questão.

  36. YAGNI You Aren't Gonna Need It

  37. Mas, as vezes é preciso!

  38. Make work. Make right. Make fast.

  39. O que não pode ser medido não pode ser melhorado.

  40. Esteja pronto, sempre!

  41. None
  42. Obrigado! @JonataWeber

  43. Referências https://speakerdeck.com/tarsisazevedo/performance-analysis-101 http://wiki.c2.com/?PrematureOptimization http://wiki.c2.com/?ProfileBeforeOptimizing http://wiki.c2.com/?MakeItWorkMakeItRightMakeItFast