Dicas para aumentar a performance de
          um software PHP

     Almir Neto – almirneto@gmail.com

        PHP Conference Brazil 2009
         http://www.phpconf.com.br
     Osasco, 27 de Novembro de 2009
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




     Saída de dados




                      Almir Neto
                almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




1 - echo é mais rápido que print

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




                           Almir Neto
                     almirneto@gmail.com
Dicas para aumentar a performance de um software PHP


 2 - Aspas simples são mais rápidas
 com concatenação do que colocar
  variáveis dentro de aspas duplas
Lento:
echo "Meu nome é $nome";


Rápido:
echo 'Meu nome é ' . $nome;




                                    Almir Neto
                              almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




 3 - Utilizar vários parâmetros
 com echo é mais rápido que
            concatenar
Lento:
echo 'Em ' . $cidade . ' são ' . $horas . ' $horas ';

Rápido:
echo 'Em ', $cidade, ' são ', $horas, ' $horas ';



                                 Almir Neto
                           almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




 Laços de Repetição




                      Almir Neto
                almirneto@gmail.com
Dicas para aumentar a performance de um software PHP


    Chamadas de funções são lentas!
4 - Não utilize chamadas a funções no bloco
    de controle do laço de repetição for()
  Fazendo isso a chamada será feita em cada iteração do laço de repetição

 Lento:
 for ( $i = 1; $i < sizeof($array); $i++ ) {}

 Rápido:
 $size = sizeof($array);
 for ( $i = 1; $i < $size; $i++ ) {}


                                   Almir Neto
                             almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



            5 - strlen() é muito lento!
 Ao checar o tamanho de strings, ao invés de utilizar strlen(),
                utilize isset se for possível
Lento:
if(strlen($_POST['nome']) < 5) echo 'O campo nome é menor
do que cinco';

Rápido:
if(!isset($_POST['nome']{5})) echo 'O campo nome é menor do
que cinco';


                               Almir Neto
                         almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



            6 - Utilize pré-incremento
 Pré-incrementar variáveis é 10% mais rápido que pós-incrementar


Lento:
$contador++;

Rápido:
++$contador;



                               Almir Neto
                         almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




 7 - Incrementar uma variável
indefinida é até 10 vezes mais
lento que uma pré-inicializada.



                          Almir Neto
                    almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




8 - Incrementar uma variável
global é mais lento que uma
        variável local.



                         Almir Neto
                   almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




     9 - Incrementar um
atributo($this->var++) é mais
lento que uma variável local.


                         Almir Neto
                   almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




Variáveis e Funções




                      Almir Neto
                almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




        10 - Libere memória
Utilize unset() para liberar as variáveis que não for mais
          utilizar, principalmente grandes arrays




                             Almir Neto
                       almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




11 - Utilize require() e include()
 ao invés de require_once() e
          include_once()


                           Almir Neto
                     almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




  12 - Sempre utilize caminho
  completo ao incluir arquivos
Lento:
include('noticias.php');

Rápido:
include('/var/www/html/noticias.php');



                                 Almir Neto
                           almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




13 - Switch é lento. Utilize else if
      para testes múltiplos.



                           Almir Neto
                     almirneto@gmail.com
Dicas para aumentar a performance de um software PHP


            14 - Evite funções inúteis
Ao invés de utilizar as funções:
- php_version();
- php_uname('s');
- php_sapi_name();

Utilize as constantes:
- PHP_VERSION
- PHP_OS
- PHP_SAPI


                               Almir Neto
                         almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



15 - Não utilize funções para descobrir se o
               SO é Windows


Rápido e Fácil:
$windows = DIRECTORY_SEPARATOR == '';




                             Almir Neto
                       almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



 16 - Para descobrir a hora correta com
       precisão não utilize funções


Rápido:
$_SERVER['REQUEST_TIME']




                            Almir Neto
                      almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



  17 - Evite utilizar expressões regulares

Lento:
if (preg_match("!string!i", "text")) {}

Rápido:
if (stripos("text", "string") !== false) {}




                                   Almir Neto
                             almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



 18 - Jamais utilize @ para suprimir erros
         Internamente o caracter @ faz intensas operações


// @action();
$old = ini_set(“error_reporting”, 0);
action();
ini_set(“error_reporting”, $old);




                                Almir Neto
                          almirneto@gmail.com
Dicas para aumentar a performance de um software PHP


19 - Compare strings com a função que tem
             essa finalidade
Muito Lento:
if (preg_match('!^WIN!', PHP_OS)) {
if (preg_match('!^WIN!i', PHP_OS)) {


Lento:
if (substr(PHP_OS, 0, 3) == 'WIN') {
if (strtolower(substr(PHP_OS, 0, 3))) == 'win') {


Rápido:
if (!strncmp(PHP_OS, 'WIN', 3)) {
if (!strncasecmp(PHP_OS, 'WIN', 3)) {



                                          Almir Neto
                                    almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



20 - Utilize substr_compare() para comparar
              pedaços de strings

Lento:
if (substr($class, -15) != 'text')

Rápido
if (substr_compare($class, 'text', -15))




                                  Almir Neto
                            almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




              Arrays




                      Almir Neto
                almirneto@gmail.com
Dicas para aumentar a performance de um software PHP


21 - Itens de arrays que são strings devem
        ser chamados como strings
$array = array('chave' => 'valor');

Lento:
$array[chave] = 0;

Rápido:
$array['chave'];
O PHP primeiramente procura pela constante chave, e depois converte essa
       constante para string. Um erro do tipo E_NOTICE é gerado



                                  Almir Neto
                            almirneto@gmail.com
Dicas para aumentar a performance de um software PHP


      22 - Referências podem aumentar a
                 performance
$array['b']['c'] = array();

Lento:
for($cont = 0; $cont < 5; $cont++)
  $array['b']['c'][$cont] = $cont;

Rápido:
$referencia =& $array['b']['c'];
for($cont = 0; $cont < 5; $cont++)
  $referencia[$cont] = $cont;




                                         Almir Neto
                                   almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




Orientação a Objetos




                      Almir Neto
                almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




23 - Sempre declare seus
 métodos como estáticos



                       Almir Neto
                 almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




   24 - Utilize constantes de
              classes
- São analisadas na compilação, não sobrecarregando a
                      execução.




                            Almir Neto
                      almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




25 - Não utilize métodos mágicos

- __get()
- __set()
- __autoload()
- __call()




                                   Almir Neto
                             almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




26 - Métodos de classes filhas
são mais rápidos que métodos
       da classe base



                          Almir Neto
                    almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




   27 - Somente utilize POO
quando for realmente necessário
Sistemas POO são ligeiramente mais lentos pois chamadas
     a métodos e objetos consomem muita memória.




                              Almir Neto
                        almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




        Outras Dicas




                      Almir Neto
                almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




    28 - Quando tiver páginas
     estáticas, não utilize a
    extensão .php, mas .html
Dessa maneira o interpretador do PHP nem é chamado, e
  os dados são enviados diretamente ao navegador do
                        cliente.




                             Almir Neto
                       almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




29 - 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, pois a função estará compilada no
                     núcleo do PHP.




                              Almir Neto
                        almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




30 - Sempre feche as conexões
 com o banco de dados após a
        sua utilização



                          Almir Neto
                    almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




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




                              Almir Neto
                        almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




32 - Utilize um sistema de profile
para descobrir onde há gargalos
           na aplicação



                           Almir Neto
                     almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




              33 – 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/co
    mparing_php_script_performance_on_linux_and_windows



                               Almir Neto
                         almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




Configurações do Servidor




                        Almir Neto
                  almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




               IO de arquivos
- Deixe a lista do atributo DirectoryIndex o mais curto
possível;
- Quando possível desabilite o .htaccess através do
atributo AllowOverride none;
- Se a gravação de logs for desnecessária, desabilite-os;
- Se os logs forem realmente necessários, grave tudo em
um só arquivo.


                              Almir Neto
                        almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




           Controle de Saída
 Habilite Output Buffering em um script com ob_start() ou
para todos os scripts com o atributo output_buffering = On

 Dessa maneira a página é enviada de uma só vez para o
sistema operacional, aumentando o tempo de renderização
                      do navegador




                              Almir Neto
                        almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




               Controle de Saída
      Menor quantidade de saída = Maior performance
- Reduz a utilização de recursos do servidor como CPU, HD e Memória
- A página carrega mais rapidamente
- Diminui o tráfego de dados na rede, que geralmente é o maior gargalo
em aplicações.




                                  Almir Neto
                            almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



                Conteúdo Estático
   Para conteúdo dinâmico o Apache é ótimo, porém para
   conteúdo estático há outros servidores web bem mais
                         rápidos.
- lighttpd
- boa
- tux
- thttpd


Para conteúdo estático esses servidores chegam a ser 400% mais
rápidos que o Apache.


                                   Almir Neto
                             almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



         Compressão de Dados
  A maioria dos navegadores suporta dados comprimidos
- Páginas comprimidas são até 8 vezes menores
-> Apache 1 - mod_gzip / mod_deflate
-> Apache 2 - mod_deflate
-> PHP
   - Em um script: ob_start('ob_gzhandler');
   - Nas configurações do PHP: zlib.output_compression = 1




                                  Almir Neto
                            almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



       Configurações do PHP
- register_globals = Off
- magic_quotes_gpc = Off
- 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


                              Almir Neto
                        almirneto@gmail.com
Dicas para aumentar a performance de um software PHP



   Armazenamento de Sessões
- Por padrão o PHP armazena cada sessão em um arquivo separado
- Muitos arquivos em um só diretório reduz a velocidade de acesso
-> Grave as sessões em vários diretórios
   session.save_path = "N;path"


- Grave as sessões na memória
-> apc
-> memcache




                                  Almir Neto
                            almirneto@gmail.com
Dicas para aumentar a performance de um software PHP


     Bibliografia / Agradecimentos
• PHP & Performance:
  - Ilia Alshanetsky
  http://talks.php.net/show/perf_tunning
• PHP Optimization Tips
  http://progtuts.info/55/php-optimization-tips/
• 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
• Paessler
  http://www.paessler.com/webstress/sample_performance_tests/comparing_
  php_script_performance_on_linux_and_windows


                                           Almir Neto
                                     almirneto@gmail.com
Dicas para aumentar a performance de um software PHP




                  Fim



                      Almir Neto
                almirneto@gmail.com

Dicas para aumentar a performance de um software PHP

  • 1.
    Dicas para aumentara performance de um software PHP Almir Neto – almirneto@gmail.com PHP Conference Brazil 2009 http://www.phpconf.com.br Osasco, 27 de Novembro de 2009
  • 2.
    Dicas para aumentara 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
  • 3.
    Dicas para aumentara performance de um software PHP Saída de dados Almir Neto almirneto@gmail.com
  • 4.
    Dicas para aumentara performance de um software PHP 1 - echo é mais rápido que print http://www.faqts.com/knowledge_base/vie w.phtml/aid/1/fid/40 Almir Neto almirneto@gmail.com
  • 5.
    Dicas para aumentara performance de um software PHP 2 - Aspas simples são mais rápidas com concatenação do que colocar variáveis dentro de aspas duplas Lento: echo "Meu nome é $nome"; Rápido: echo 'Meu nome é ' . $nome; Almir Neto almirneto@gmail.com
  • 6.
    Dicas para aumentara performance de um software PHP 3 - Utilizar vários parâmetros com echo é mais rápido que concatenar Lento: echo 'Em ' . $cidade . ' são ' . $horas . ' $horas '; Rápido: echo 'Em ', $cidade, ' são ', $horas, ' $horas '; Almir Neto almirneto@gmail.com
  • 7.
    Dicas para aumentara performance de um software PHP Laços de Repetição Almir Neto almirneto@gmail.com
  • 8.
    Dicas para aumentara performance de um software PHP Chamadas de funções são lentas! 4 - Não utilize chamadas a funções no bloco de controle do laço de repetição for() Fazendo isso a chamada será feita em cada iteração do laço de repetição Lento: for ( $i = 1; $i < sizeof($array); $i++ ) {} Rápido: $size = sizeof($array); for ( $i = 1; $i < $size; $i++ ) {} Almir Neto almirneto@gmail.com
  • 9.
    Dicas para aumentara performance de um software PHP 5 - strlen() é muito lento! Ao checar o tamanho de strings, ao invés de utilizar strlen(), utilize isset se for possível Lento: if(strlen($_POST['nome']) < 5) echo 'O campo nome é menor do que cinco'; Rápido: if(!isset($_POST['nome']{5})) echo 'O campo nome é menor do que cinco'; Almir Neto almirneto@gmail.com
  • 10.
    Dicas para aumentara performance de um software PHP 6 - Utilize pré-incremento Pré-incrementar variáveis é 10% mais rápido que pós-incrementar Lento: $contador++; Rápido: ++$contador; Almir Neto almirneto@gmail.com
  • 11.
    Dicas para aumentara performance de um software PHP 7 - Incrementar uma variável indefinida é até 10 vezes mais lento que uma pré-inicializada. Almir Neto almirneto@gmail.com
  • 12.
    Dicas para aumentara performance de um software PHP 8 - Incrementar uma variável global é mais lento que uma variável local. Almir Neto almirneto@gmail.com
  • 13.
    Dicas para aumentara performance de um software PHP 9 - Incrementar um atributo($this->var++) é mais lento que uma variável local. Almir Neto almirneto@gmail.com
  • 14.
    Dicas para aumentara performance de um software PHP Variáveis e Funções Almir Neto almirneto@gmail.com
  • 15.
    Dicas para aumentara performance de um software PHP 10 - Libere memória Utilize unset() para liberar as variáveis que não for mais utilizar, principalmente grandes arrays Almir Neto almirneto@gmail.com
  • 16.
    Dicas para aumentara performance de um software PHP 11 - Utilize require() e include() ao invés de require_once() e include_once() Almir Neto almirneto@gmail.com
  • 17.
    Dicas para aumentara performance de um software PHP 12 - Sempre utilize caminho completo ao incluir arquivos Lento: include('noticias.php'); Rápido: include('/var/www/html/noticias.php'); Almir Neto almirneto@gmail.com
  • 18.
    Dicas para aumentara performance de um software PHP 13 - Switch é lento. Utilize else if para testes múltiplos. Almir Neto almirneto@gmail.com
  • 19.
    Dicas para aumentara performance de um software PHP 14 - Evite funções inúteis Ao invés de utilizar as funções: - php_version(); - php_uname('s'); - php_sapi_name(); Utilize as constantes: - PHP_VERSION - PHP_OS - PHP_SAPI Almir Neto almirneto@gmail.com
  • 20.
    Dicas para aumentara performance de um software PHP 15 - Não utilize funções para descobrir se o SO é Windows Rápido e Fácil: $windows = DIRECTORY_SEPARATOR == ''; Almir Neto almirneto@gmail.com
  • 21.
    Dicas para aumentara performance de um software PHP 16 - Para descobrir a hora correta com precisão não utilize funções Rápido: $_SERVER['REQUEST_TIME'] Almir Neto almirneto@gmail.com
  • 22.
    Dicas para aumentara performance de um software PHP 17 - Evite utilizar expressões regulares Lento: if (preg_match("!string!i", "text")) {} Rápido: if (stripos("text", "string") !== false) {} Almir Neto almirneto@gmail.com
  • 23.
    Dicas para aumentara performance de um software PHP 18 - Jamais utilize @ para suprimir erros Internamente o caracter @ faz intensas operações // @action(); $old = ini_set(“error_reporting”, 0); action(); ini_set(“error_reporting”, $old); Almir Neto almirneto@gmail.com
  • 24.
    Dicas para aumentara performance de um software PHP 19 - Compare strings com a função que tem essa finalidade Muito Lento: if (preg_match('!^WIN!', PHP_OS)) { if (preg_match('!^WIN!i', PHP_OS)) { Lento: if (substr(PHP_OS, 0, 3) == 'WIN') { if (strtolower(substr(PHP_OS, 0, 3))) == 'win') { Rápido: if (!strncmp(PHP_OS, 'WIN', 3)) { if (!strncasecmp(PHP_OS, 'WIN', 3)) { Almir Neto almirneto@gmail.com
  • 25.
    Dicas para aumentara performance de um software PHP 20 - Utilize substr_compare() para comparar pedaços de strings Lento: if (substr($class, -15) != 'text') Rápido if (substr_compare($class, 'text', -15)) Almir Neto almirneto@gmail.com
  • 26.
    Dicas para aumentara performance de um software PHP Arrays Almir Neto almirneto@gmail.com
  • 27.
    Dicas para aumentara performance de um software PHP 21 - Itens de arrays que são strings devem ser chamados como strings $array = array('chave' => 'valor'); Lento: $array[chave] = 0; Rápido: $array['chave']; O PHP primeiramente procura pela constante chave, e depois converte essa constante para string. Um erro do tipo E_NOTICE é gerado Almir Neto almirneto@gmail.com
  • 28.
    Dicas para aumentara performance de um software PHP 22 - Referências podem aumentar a performance $array['b']['c'] = array(); Lento: for($cont = 0; $cont < 5; $cont++) $array['b']['c'][$cont] = $cont; Rápido: $referencia =& $array['b']['c']; for($cont = 0; $cont < 5; $cont++) $referencia[$cont] = $cont; Almir Neto almirneto@gmail.com
  • 29.
    Dicas para aumentara performance de um software PHP Orientação a Objetos Almir Neto almirneto@gmail.com
  • 30.
    Dicas para aumentara performance de um software PHP 23 - Sempre declare seus métodos como estáticos Almir Neto almirneto@gmail.com
  • 31.
    Dicas para aumentara performance de um software PHP 24 - Utilize constantes de classes - São analisadas na compilação, não sobrecarregando a execução. Almir Neto almirneto@gmail.com
  • 32.
    Dicas para aumentara performance de um software PHP 25 - Não utilize métodos mágicos - __get() - __set() - __autoload() - __call() Almir Neto almirneto@gmail.com
  • 33.
    Dicas para aumentara performance de um software PHP 26 - Métodos de classes filhas são mais rápidos que métodos da classe base Almir Neto almirneto@gmail.com
  • 34.
    Dicas para aumentara performance de um software PHP 27 - Somente utilize POO quando for realmente necessário Sistemas POO são ligeiramente mais lentos pois chamadas a métodos e objetos consomem muita memória. Almir Neto almirneto@gmail.com
  • 35.
    Dicas para aumentara performance de um software PHP Outras Dicas Almir Neto almirneto@gmail.com
  • 36.
    Dicas para aumentara performance de um software PHP 28 - Quando tiver páginas estáticas, não utilize a extensão .php, mas .html Dessa maneira o interpretador do PHP nem é chamado, e os dados são enviados diretamente ao navegador do cliente. Almir Neto almirneto@gmail.com
  • 37.
    Dicas para aumentara performance de um software PHP 29 - 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, pois a função estará compilada no núcleo do PHP. Almir Neto almirneto@gmail.com
  • 38.
    Dicas para aumentara performance de um software PHP 30 - Sempre feche as conexões com o banco de dados após a sua utilização Almir Neto almirneto@gmail.com
  • 39.
    Dicas para aumentara performance de um software PHP 31 - 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. Almir Neto almirneto@gmail.com
  • 40.
    Dicas para aumentara performance de um software PHP 32 - Utilize um sistema de profile para descobrir onde há gargalos na aplicação Almir Neto almirneto@gmail.com
  • 41.
    Dicas para aumentara performance de um software PHP 33 – 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/co mparing_php_script_performance_on_linux_and_windows Almir Neto almirneto@gmail.com
  • 42.
    Dicas para aumentara performance de um software PHP Configurações do Servidor Almir Neto almirneto@gmail.com
  • 43.
    Dicas para aumentara performance de um software PHP IO de arquivos - Deixe a lista do atributo DirectoryIndex o mais curto possível; - Quando possível desabilite o .htaccess através do atributo AllowOverride none; - Se a gravação de logs for desnecessária, desabilite-os; - Se os logs forem realmente necessários, grave tudo em um só arquivo. Almir Neto almirneto@gmail.com
  • 44.
    Dicas para aumentara performance de um software PHP Controle de Saída Habilite Output Buffering em um script com ob_start() ou para todos os scripts com o atributo output_buffering = On Dessa maneira a página é enviada de uma só vez para o sistema operacional, aumentando o tempo de renderização do navegador Almir Neto almirneto@gmail.com
  • 45.
    Dicas para aumentara performance de um software PHP Controle de Saída Menor quantidade de saída = Maior performance - Reduz a utilização de recursos do servidor como CPU, HD e Memória - A página carrega mais rapidamente - Diminui o tráfego de dados na rede, que geralmente é o maior gargalo em aplicações. Almir Neto almirneto@gmail.com
  • 46.
    Dicas para aumentara performance de um software PHP Conteúdo Estático Para conteúdo dinâmico o Apache é ótimo, porém para conteúdo estático há outros servidores web bem mais rápidos. - lighttpd - boa - tux - thttpd Para conteúdo estático esses servidores chegam a ser 400% mais rápidos que o Apache. Almir Neto almirneto@gmail.com
  • 47.
    Dicas para aumentara performance de um software PHP Compressão de Dados A maioria dos navegadores suporta dados comprimidos - Páginas comprimidas são até 8 vezes menores -> Apache 1 - mod_gzip / mod_deflate -> Apache 2 - mod_deflate -> PHP - Em um script: ob_start('ob_gzhandler'); - Nas configurações do PHP: zlib.output_compression = 1 Almir Neto almirneto@gmail.com
  • 48.
    Dicas para aumentara performance de um software PHP Configurações do PHP - register_globals = Off - magic_quotes_gpc = Off - 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 Almir Neto almirneto@gmail.com
  • 49.
    Dicas para aumentara performance de um software PHP Armazenamento de Sessões - Por padrão o PHP armazena cada sessão em um arquivo separado - Muitos arquivos em um só diretório reduz a velocidade de acesso -> Grave as sessões em vários diretórios session.save_path = "N;path" - Grave as sessões na memória -> apc -> memcache Almir Neto almirneto@gmail.com
  • 50.
    Dicas para aumentara performance de um software PHP Bibliografia / Agradecimentos • PHP & Performance: - Ilia Alshanetsky http://talks.php.net/show/perf_tunning • PHP Optimization Tips http://progtuts.info/55/php-optimization-tips/ • 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 • Paessler http://www.paessler.com/webstress/sample_performance_tests/comparing_ php_script_performance_on_linux_and_windows Almir Neto almirneto@gmail.com
  • 51.
    Dicas para aumentara performance de um software PHP Fim Almir Neto almirneto@gmail.com