Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
PHP Summer School
PHP Summer School




 Desenvolvimento Orientado à Performance
                      Nuno Loureiro <nuno...
PHP Summer School
 About me

 •   Licenciatura em Eng. Sistemas e Computação
 •   Começou a usar Linux em 1995

 •   Começ...
PHP Summer School
Sumário - parte I


      •       Arquitectura
               •   Performance e Escalabilidade
         ...
PHP Summer School
 Sumário - parte II


         •    PHP
                  •   Profiling
                  •   Caching
  ...
PHP Summer School
 Arquitectura
 Performance e Escalabilidade

   • Performance != velocidade de execução
   • Performance...
PHP Summer School
 Arquitectura
 Performance e Escalabilidade
Exemplo:
              Script que leia um ficheiro binário d...
PHP Summer School
 Arquitectura
 Performance e Escalabilidade
Exemplo:
              Script que leia um ficheiro binário d...
PHP Summer School
 Arquitectura
 Performance e Escalabilidade




Performance                                    7
PHP Summer School
 Arquitectura
 Performance e Escalabilidade
    • A.php: Leitura única do ficheiro => Mais rápido
    • B...
PHP Summer School
 Arquitectura
 Performance e Escalabilidade
    • A.php: Leitura única do ficheiro => Mais rápido
    • B...
PHP Summer School
 Arquitectura
 Performance e Escalabilidade
    • A.php: Leitura única do ficheiro => Mais rápido
    • B...
PHP Summer School
 Arquitectura
 Conteúdo Estático vs Dinâmico




Performance                                     8
PHP Summer School
 Arquitectura
 Conteúdo Estático vs Dinâmico
   Conteúdo Estático:                               Conteúd...
PHP Summer School
 Arquitectura
 Conteúdo Estático vs Dinâmico
   Conteúdo Estático:                                    Co...
PHP Summer School
 Arquitectura
 Conteúdo Estático vs Dinâmico
   Conteúdo Estático:                                    Co...
PHP Summer School
 Arquitectura
 Webserver




Performance                    9
PHP Summer School
 Arquitectura
 Webserver
Arquitectura mais comum:

              Apache

              PHP
      Apache ...
PHP Summer School
 Arquitectura
 Webserver
Arquitectura mais comum:                A ganhar bastante popularidade:
       ...
PHP Summer School
 Arquitectura
 Webserver
 Exemplo de uma Arquitectura escalável:




Performance                        ...
PHP Summer School
 Arquitectura
 Webserver
 Dicas:
 • Compilar apenas com os módulos necessários
 • Desligar tudo o que nã...
PHP Summer School
Arquitectura
Compressão de Conteúdo




Performance                             12
PHP Summer School
Arquitectura
Compressão de Conteúdo




         Compressão de Conteúdo
              •   A maioria dos ...
PHP Summer School
Arquitectura
Compressão de Conteúdo
Menos output ...
  •    usa menos largura de banda
  •    poupa €€€
...
PHP Summer School
Arquitectura
Optimizações de Compilador

    Para máxima performance é crucial que todo o software seja
...
PHP Summer School
 Arquitectura
 Tuning php.ini

     • Settings aconselhados ** php.ini:
                                ...
PHP Summer School
 Arquitectura
Compiler/Opcode Caching




Performance                              15
PHP Summer School
 Arquitectura
Compiler/Opcode Caching
                          • O ciclo a branco acontece para cada fic...
PHP Summer School
 Arquitectura
Compiler/Opcode Caching
                          • O ciclo a branco acontece para cada fic...
PHP Summer School
 Arquitectura
Compiler/Opcode Caching
Opções mais populares para Opcode Cache:
 • Alternative PHP Cache ...
PHP Summer School
 Arquitectura
 Bottlenecks


      •       Bottlenecks típicos de uma Arquitectura:
               •   I...
PHP Summer School
 Arquitectura
 Session Storage
   Para um único servidor:
      •   Por default cada sessão de PHP é gua...
PHP Summer School
Arquitectura
 Benchmarking
Opções mais populares para Benchmarking de conteúdo:
      Apache Benchmark -...
PHP Summer School
 Sumário - parte II


         •    PHP
                  •   Profiling
                  •   Caching
  ...
PHP Summer School
 PHP
 Profiling
  •   PHP Debugger (APD) - http://pecl.php.net/package/apd




  •    Zend Platform / Zen...
PHP Summer School
 PHP
 Profiling
              PEAR Benchmark_Profiler

                 Result




                  Méto...
PHP Summer School
 PHP
 Caching




Performance                  23
PHP Summer School
 PHP
 Caching
 O que é?
       •      Caching é o reconhecimento do facto que a maioria dos
            ...
PHP Summer School
 PHP
 Caching
 O que é?
       •      Caching é o reconhecimento do facto que a maioria dos
            ...
PHP Summer School
 PHP
 Caching
 O que é?
       •      Caching é o reconhecimento do facto que a maioria dos
            ...
PHP Summer School
 PHP
 Caching
 O que é?
       •      Caching é o reconhecimento do facto que a maioria dos
            ...
PHP Summer School
 PHP
 Caching
   Tipos de cache:
        •      Full Content Caching
        •      Partial Content Cach...
PHP Summer School
Opções de código a considerar




                      Profiling Results:




                          ...
PHP Summer School
 PHP
Opções de código a considerar
 • Evitar usar Regular Expressions
        •   preg_match() => strpos...
PHP Summer School
 PHP
Opções de código a considerar
• Para Arrays Associativos usar foreach() em vez de while(list()=   e...
PHP Summer School
Opções de código a considerar




                      Profiling Results:




                          ...
PHP Summer School
 PHP
Opções de código a considerar



                  Profiling Results:




                          ...
PHP Summer School
 PHP
 80/20 rule



              80% do teu código demora menos de
              20% do tempo total de ...
PHP Summer School
Bases de Dados
O que evitar e o que usar



          •   Evitar:
              •   usar joins
         ...
PHP Summer School
PHP Summer School




                                  FIM!
                           Obrigado, pergun...
Nächste SlideShare
Wird geladen in …5
×

Performance (Web&PHP)

6.782 Aufrufe

Veröffentlicht am

PHP Summer School, Lisbon, Jul 2007
Performance Module

Veröffentlicht in: Technologie
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/qURD } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/qURD } ......................................................................................................................... Download doc Ebook here { https://soo.gd/qURD } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://shorturl.at/mzUV6 } ......................................................................................................................... Download Full EPUB Ebook here { http://shorturl.at/mzUV6 } ......................................................................................................................... Download Full doc Ebook here { http://shorturl.at/mzUV6 } ......................................................................................................................... Download PDF EBOOK here { http://shorturl.at/mzUV6 } ......................................................................................................................... Download EPUB Ebook here { http://shorturl.at/mzUV6 } ......................................................................................................................... Download doc Ebook here { http://shorturl.at/mzUV6 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy &amp; Proven Way to Build Good Habits &amp; Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Antworten 
    Sind Sie sicher, dass Sie …  Ja  Nein
    Ihre Nachricht erscheint hier

Performance (Web&PHP)

  1. 1. PHP Summer School PHP Summer School Desenvolvimento Orientado à Performance Nuno Loureiro <nuno@co.sapo.pt> http://blog.sig9.net/ 20/07/2007 Nuno Loureiro <nuno@co.sapo.pt> 20/07/2007
  2. 2. PHP Summer School About me • Licenciatura em Eng. Sistemas e Computação • Começou a usar Linux em 1995 • Começou a programar PHP em 1999 • Organizou o 1º Simpósio de Linux em 1999 - Simplinux • Sócio-fundador da ETH em 1999 • Autor do artigo “Programming PHP with Security in Mind” na Linux Journal 10/2002 • Juntou-se à equipa do SAPO em 2002 • Programador do Webmail do SAPO • Gestor técnico da plataforma de email do SAPO • Zend Certified Engineer em 2005 Performance 2
  3. 3. PHP Summer School Sumário - parte I • Arquitectura • Performance e Escalabilidade • Conteúdo Estático vs Dinâmico • Webserver • Compressão de Conteúdo • Optimizações de Compilador • Tuning php.ini • Compiler/Opcode Caching • Bottlenecks • Session Storage • Benchmarking Performance 3
  4. 4. PHP Summer School Sumário - parte II • PHP • Profiling • Caching • Opções de código a considerar • Regra 80/20 • Bases de Dados • O que evitar e o que usar Performance 4
  5. 5. PHP Summer School Arquitectura Performance e Escalabilidade • Performance != velocidade de execução • Performance = compromisso entre velocidade e escalabilidade Performance 5
  6. 6. PHP Summer School Arquitectura Performance e Escalabilidade Exemplo: Script que leia um ficheiro binário de 5Mb e escreva outro ficheiro com o conteúdo do primeiro mas codificado em base64 Performance 6
  7. 7. PHP Summer School Arquitectura Performance e Escalabilidade Exemplo: Script que leia um ficheiro binário de 5Mb e escreva outro ficheiro com o conteúdo do primeiro mas codificado em base64 Exemplo A.php: implementação tendo em conta a velocidade Exemplo B.php: implementação tendo em conta a escalabilidade A.php B.php Performance 6
  8. 8. PHP Summer School Arquitectura Performance e Escalabilidade Performance 7
  9. 9. PHP Summer School Arquitectura Performance e Escalabilidade • A.php: Leitura única do ficheiro => Mais rápido • B.php: Múltiplas leituras do ficheiro => Mais lento A.php B.php Performance 7
  10. 10. PHP Summer School Arquitectura Performance e Escalabilidade • A.php: Leitura única do ficheiro => Mais rápido • B.php: Múltiplas leituras do ficheiro => Mais lento No entanto, • A.php: Leitura única do ficheiro => Mais memória usada (~=2x5Mb) • B.php: Múltiplas leituras do ficheiro => Pouca memória usada A.php B.php Performance 7
  11. 11. PHP Summer School Arquitectura Performance e Escalabilidade • A.php: Leitura única do ficheiro => Mais rápido • B.php: Múltiplas leituras do ficheiro => Mais lento No entanto, • A.php: Leitura única do ficheiro => Mais memória usada (~=2x5Mb) • B.php: Múltiplas leituras do ficheiro => Pouca memória usada Com 100 instâncias em paralelo, • A.php: Ocupa cerca de 1Gb RAM => Usa Swap => LENTO! • B.php: Consumo de memória praticamente não cresce => Impacto na performance pouco significativo => MAIS RAPIDO! A.php B.php Performance 7
  12. 12. PHP Summer School Arquitectura Conteúdo Estático vs Dinâmico Performance 8
  13. 13. PHP Summer School Arquitectura Conteúdo Estático vs Dinâmico Conteúdo Estático: Conteúdo Dinâmico: • • Não envolve processamento extra Envolve processamento extra • • Servido directamente pelo servidor Web Servidor Web => Engine que interpreta o script • • Mais leve e rápido Mais lento que conteúdo estático • • exemplos: imagens, HTML, Javascript exemplos: PHP Perl, Python, Ruby , Performance 8
  14. 14. PHP Summer School Arquitectura Conteúdo Estático vs Dinâmico Conteúdo Estático: Conteúdo Dinâmico: • • Não envolve processamento extra Envolve processamento extra • • Servido directamente pelo servidor Web Servidor Web => Engine que interpreta o script • • Mais leve e rápido Mais lento que conteúdo estático • • exemplos: imagens, HTML, Javascript exemplos: PHP Perl, Python, Ruby , Para obter máxima Performance/Escalabilidade: • Usar sempre que possível conteúdo estático (pre-executar os scripts e servir sempre o conteúdo estático resultante) • Quando não é possível usar apenas conteúdo estático, dividir página em componentes e tornar estático os componentes que podem ser estáticos. (Ex: Portal com blocos de notícias) • Mas, nem sempre precisamos deste tipo de solução. Existem também outras alternativas tipo cache. Performance 8
  15. 15. PHP Summer School Arquitectura Conteúdo Estático vs Dinâmico Conteúdo Estático: Conteúdo Dinâmico: • • Não envolve processamento extra Envolve processamento extra • • Servido directamente pelo servidor Web Servidor Web => Engine que interpreta o script • • Mais leve e rápido Mais lento que conteúdo estático • • exemplos: imagens, HTML, Javascript exemplos: PHP Perl, Python, Ruby , Para obter máxima Performance/Escalabilidade: • Usar sempre que possível conteúdo estático (pre-executar os scripts e servir sempre o conteúdo estático resultante) • Quando não é possível usar apenas conteúdo estático, dividir página em componentes e tornar estático os componentes que podem ser estáticos. (Ex: Portal com blocos de notícias) • Mas, nem sempre precisamos deste tipo de solução. Existem também outras alternativas tipo cache. Dica: devido às limitações de pipelining dos browsers usar um domínio diferente para servir conteúdo estático Performance 8
  16. 16. PHP Summer School Arquitectura Webserver Performance 9
  17. 17. PHP Summer School Arquitectura Webserver Arquitectura mais comum: Apache PHP Apache + mod_php • “A” da arquitectura LAMP • Popular por algum motivo • PHP está embutido no Apache • Processos Apache ocupam mais RAM • Se o Apache estiver a servir muitos clientes lentos vai ter muita memória ocupada inutilmente Performance 9
  18. 18. PHP Summer School Arquitectura Webserver Arquitectura mais comum: A ganhar bastante popularidade: Lighttpd Apache PHP PHP Apache + mod_php Lighttpd + php fcgi • “A” da arquitectura LAMP • Rápido que se farta para conteúdo • Popular por algum motivo estático. • PHP está embutido no Apache • Separa as águas: • Processos Apache ocupam mais RAM • Servidor HTTP + Servidor PHP • Se o Apache estiver a servir muitos • Podemos criar um cluster de clientes lentos vai ter muita memória servidores HTTP e outro para correr ocupada inutilmente apenas PHP • Se o Lighttpd estiver a servir muitos clientes lentos, não há problema Performance 9
  19. 19. PHP Summer School Arquitectura Webserver Exemplo de uma Arquitectura escalável: Performance 10
  20. 20. PHP Summer School Arquitectura Webserver Dicas: • Compilar apenas com os módulos necessários • Desligar tudo o que não é necessário: • Logs => I/O • Se precisar de Logs: • não converter IPs em Hostnames • rodar os Logs • Status/ExtendStatus • Evitar tudo o que provoque mais do que um stat() por request • Exemplos no Apache: • Manter a lista do “DirectoryIndex” o mais pequena possível • Desactivar o uso de .htaccess com “AllowOverride none” Performance 11
  21. 21. PHP Summer School Arquitectura Compressão de Conteúdo Performance 12
  22. 22. PHP Summer School Arquitectura Compressão de Conteúdo Compressão de Conteúdo • A maioria dos Browsers suporta • Páginas comprimidas são em média 7-10x mais pequenas • Implementações: • Apache 1 (mod_gzip / mod_deflate) • Apache 2 (mod_deflate) • Lighttpd (mod_compress) • PHP: • php.ini: zlib.output compression=1 • no script: ob_start(“ob_gzhandler”) Performance 12
  23. 23. PHP Summer School Arquitectura Compressão de Conteúdo Menos output ... • usa menos largura de banda • poupa €€€ • as páginas carregam mais rapidamente • reduz IO de rede em sites com muito tráfego Compressão de Conteúdo • A maioria dos Browsers suporta • Páginas comprimidas são em média 7-10x mais pequenas • Implementações: • Apache 1 (mod_gzip / mod_deflate) • Apache 2 (mod_deflate) • Lighttpd (mod_compress) • PHP: • php.ini: zlib.output compression=1 • no script: ob_start(“ob_gzhandler”) Performance 12
  24. 24. PHP Summer School Arquitectura Optimizações de Compilador Para máxima performance é crucial que todo o software seja compilado de forma a usar o máximo do hardware disponível • Activar todas as optimizações de compilador com o -O3 • Optimizar o código para o CPU usado via -march -mcpu • Funcionalidades específicas do CPU via -msse -mmmx -mfpmath=sse • Desactivar dados para debug via -fomit-frame-pointer Performance 13
  25. 25. PHP Summer School Arquitectura Tuning php.ini • Settings aconselhados ** php.ini: no • register_globals = Off • register_long_arrays = Off • magic_quotes_gpc = Off • variables_order = “GPCS” • expose_php = Off • register_argc_argv = Off • always_populate_raw_post_data = Off ** • session.use_trans_sid = Off ** • session.auto_start = Off ** • session.gc_divisor = 1000 or 10000 • output_buffering = 4096 ** Desligado por default Performance 14
  26. 26. PHP Summer School Arquitectura Compiler/Opcode Caching Performance 15
  27. 27. PHP Summer School Arquitectura Compiler/Opcode Caching • O ciclo a branco acontece para cada ficheiro incluído e não apenas para o ficheiro principal • A compilação facilmente consome mais tempo do que a execução. Performance 15
  28. 28. PHP Summer School Arquitectura Compiler/Opcode Caching • O ciclo a branco acontece para cada ficheiro incluído e não apenas para o ficheiro principal • A compilação facilmente consome mais tempo do que a execução. Compiler/Opcode Caching • Cada script PHP é compilado apenas uma única vez para cada revision. • Reduz IO de ficheiros, os opcodes são lidos da memória em vez de serem “parsed” do disco. • Os opcodes são optimizados para uma execução mais rápida. Performance 15
  29. 29. PHP Summer School Arquitectura Compiler/Opcode Caching Opções mais populares para Opcode Cache: • Alternative PHP Cache (APC) - http://pecl.php.net/package/APC • pear install pecl.php.net/apc • Adicionar “extension=apc.so” no php.ini • XCache - http://xcache.lighttpd.net/wiki/GettingSource • Zend Platform - http://www.zend.com/ Performance 16
  30. 30. PHP Summer School Arquitectura Bottlenecks • Bottlenecks típicos de uma Arquitectura: • IO de Disco • Evitar logs ou gravar em disco diferente • Drive T uning (hdparm / RAID) • Usar RAM Disk para sessões ou para as sources # Speed Up /tmp Directory mount --bind -ttmpfs /tmp /tmp # Accelerate Scripts Directory mount --bind -ttmpfs /home/webroot /home/webroot • IO de Rede • Usar compressão de conteúdo • Separar Redes e usar mais interfaces de rede Performance 17
  31. 31. PHP Summer School Arquitectura Session Storage Para um único servidor: • Por default cada sessão de PHP é guardada em disco num ficheiro separado • Muitos ficheiros num directório reduz a velocidade de acesso • Separar as sessões em múltiplos directórios • session.save_path = quot;N;/pathquot; • Usar sessões em memória (via Ramdisk, shared memory) Para um cluster de servidores: • Usar Memcache • Usar o Session Clustering do Zend Platform • Fazer stickyness por servidor e usar método convencional para sessões Performance 18
  32. 32. PHP Summer School Arquitectura Benchmarking Opções mais populares para Benchmarking de conteúdo: Apache Benchmark - http://www.apache.org/ httperf http://freshmeat.net/projects/httperf/ http_load http://www.acme.com/software/http_load/ Performance 19
  33. 33. PHP Summer School Sumário - parte II • PHP • Profiling • Caching • Opções de código a considerar • Regra 80/20 • Bases de Dados • O que evitar e o que usar Performance 20
  34. 34. PHP Summer School PHP Profiling • PHP Debugger (APD) - http://pecl.php.net/package/apd • Zend Platform / Zend Studio - http://www.zend.com/ • XDebug - http://xdebug.org/ • kcachegrind Performance 21
  35. 35. PHP Summer School PHP Profiling PEAR Benchmark_Profiler Result Métodos mais úteis da class Pear::Benchmark_Profiler: •start() •stop() •enterSection() •leaveSection() •display() •getAllSectionsInformations() Performance 22
  36. 36. PHP Summer School PHP Caching Performance 23
  37. 37. PHP Summer School PHP Caching O que é? • Caching é o reconhecimento do facto que a maioria dos dados dinâmicos não mudam cada vez que os pedem Performance 23
  38. 38. PHP Summer School PHP Caching O que é? • Caching é o reconhecimento do facto que a maioria dos dados dinâmicos não mudam cada vez que os pedem Como funciona? Performance 23
  39. 39. PHP Summer School PHP Caching O que é? • Caching é o reconhecimento do facto que a maioria dos dados dinâmicos não mudam cada vez que os pedem Como funciona? Vantagens? • Grande aumento de performance • Diminuição na utilização de recursos Performance 23
  40. 40. PHP Summer School PHP Caching O que é? • Caching é o reconhecimento do facto que a maioria dos dados dinâmicos não mudam cada vez que os pedem Como funciona? Vantagens? • Grande aumento de performance • Diminuição na utilização de recursos Desvantagens? • Complexidade da Arquitectura • Potencial para dados inconsistentes Performance 23
  41. 41. PHP Summer School PHP Caching Tipos de cache: • Full Content Caching • Partial Content Caching • After Caching • Permanent Caching • HTP Header Caching Implementações de cache: • Zend Platform (parcial, total) • PEAR::Cache_Lite Performance 24
  42. 42. PHP Summer School Opções de código a considerar Profiling Results: Como posso optimizar o script? Performance 25
  43. 43. PHP Summer School PHP Opções de código a considerar • Evitar usar Regular Expressions • preg_match() => strpos() • preg_replace() => str_replace() ou strstr() • Usar echo em vez de print • Usar pelicas em vez de aspas • Usar ciclos while() em vez de for() e não usar funções nas condições Performance 26
  44. 44. PHP Summer School PHP Opções de código a considerar • Para Arrays Associativos usar foreach() em vez de while(list()= each()) Performance 27
  45. 45. PHP Summer School Opções de código a considerar Profiling Results: Agora que já sabem, optimizem! Performance 28
  46. 46. PHP Summer School PHP Opções de código a considerar Profiling Results: Ganho de 17.3% em relação ao primeiro exemplo Performance 29
  47. 47. PHP Summer School PHP 80/20 rule 80% do teu código demora menos de 20% do tempo total de execução • Não percas tempo a optimizar nada nos 80% • Descobre o que são os 20% a optimizar e optimiza Performance 30
  48. 48. PHP Summer School Bases de Dados O que evitar e o que usar • Evitar: • usar joins • fazer um query por todos os campos para obter apenas um • Usar: • Ferramentas para analisar a execução de queries • indexes nos campos apropriados Performance 31
  49. 49. PHP Summer School PHP Summer School FIM! Obrigado, perguntas? Nuno Loureiro <nuno@co.sapo.pt> http://blog.sig9.net/ 20/07/2007 Nuno Loureiro <nuno@co.sapo.pt> 20/07/2007

×