Sabe como diminuir o uso de memória e o tempo de resposta de suas aplicações PHP sem precisar modificar seu código? Não? E ainda tem mais! Você não precisa gastar nada para conseguir isso!
Parece bom demais para ser verdade não é mesmo? Mas existe uma ferramenta chamada APC (Alternative PHP Cache) que faz exatamente isso. O APC é uma extensão PECL que armazena e otimiza os opcodes PHP.
Os opcodes são as instruções que a máquina virtual PHP efetivamente lê. Todo código PHP que você escreve é transformado nestes opcodes e depois executado. O problema é que esse processo é feito para toda requisição recebida. Este processo é bem rápido, mas dependendo da quantidade de requisições recebidas em um determinado período (pense em algo como 500 requisições por segundo) e da capacidade de seu servidor, seus usuários vão ter de esperar cada vez mais para receber o conteúdo enviado pelo servidor.
Usando-se a ferramenta APC estes opcodes são gerados uma vez e armazenados na primeira requisição, nas próximas requisições o passo de ler o código PHP e gerar os opcodes já está feito, assim economizamos tempo e memória que seria usada na criação dos opcodes.
Se você tem o PECL instalado, a instalação do APC é bem simples. No linux execute:
#sudo pecl install apc
Eu tive um problema durante a compilação do APC e para resolver tive que também instalar o seguinte pacote:
#sudo apt-get install libpcre3-dev
Após fazer isso você pode copiar o script /usr/share/php/apc.php para uma pasta do apache. Quando você acessar este script através de seu navegador você poderá ver várias informações sobre o estado do APC no seu sistema. No menu "System Cache Entries" você pode ver quais scripts estão com seus opcodes armazenados.
Uma informação importante mostrada no apc.php é o Cache full count. Este número te diz quantas vezes o cache ficou totalmente cheio e o APC teve que excluir opcodes de scripts que estavam armazenados mas não foram acessados dentro do número de segundos estipulado por apc.ttl. Exemplo:
A página A.php está sendo acessada e o APC vai criar o cache dos opcodes para ela. Como a memória dedicada para o cache já está toda utilizada, o APC vai excluir o cache de D.php que não foi acessado nos últimos 5 segundos, estes 5 segundos estão definidos na varável de configuração apc.ttl. Você deve configurar o APC para que o Cache Full count não seja um número muito alto, pois este processo de limpar o cache frequentemente pode ter impacto na performance de seu sistema. Ou você aumenta a memória dedicada ao APC ou usa a configuração apc.filters para diminuir o número de scripts armazenados.
Espero que com esta dica vocês possam impressionar seus usuários com a velocidade de suas aplicações!
Ah sim! O APC não é a única ferramenta para cache de opcodes PHP:
http://en.wikipedia.org/wiki/List_of_PHP_accelerators
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário