Pergunta

Alguém tem experiência em trabalhar com aceleradores PHP como MMCache ou Acelerador Zend?Eu gostaria de saber se o uso de algum desses torna o PHP comparável ao mais rápido tecnologias web.Além disso, existem compensações para usá-los?

Foi útil?

Solução

Observe que Zend Optimizer e MMCache (ou aplicativos similares) são coisas totalmente diferentes.Enquanto o Zend Optimizer tenta otimizar o código de operação do programa, o MMCache irá armazenar em cache os scripts na memória e reutilizar o código pré-compilado.

Eu fiz alguns benchmarks há algum tempo e você pode encontrar o resultados no meu blog (embora em alemão).Os resultados básicos:

O Zend Optimizer sozinho não ajudou em nada.Na verdade, meus scripts eram mais lentos do que sem o otimizador.

Quando se trata de caches:* o mais rápido: Acelerador eletrônico * XCache * APC

E:Você deseja instalar um cache de opcode!

Por exemplo:texto alternativo http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

Este é o tempo necessário para chamar a página inicial do wordpress 10.000 vezes.

Editar: Aliás, o eAccelerator contém um otimizador.

Outras dicas

MMCache foi descontinuado.Eu recomendo também http://pecl.php.net/package/APC ou http://xcache.lighttpd.net/, sendo que ambos também fornecem armazenamento variável (como Memcache).

Ambos são interessantes e proporcionarão aumento de velocidade, pois compilam o código-fonte em representação binária que é então executada pelo mecanismo PHP.

Qualquer grande site rodando com PHP (Facebook, por exemplo) está rodando algum tipo de sistema de cache de opcode como o MMCache.

O problema é que eles não são muito fáceis de configurar dependendo do seu sistema.

Dependendo de quanto do seu código PHP é realmente executado e de quanto tempo leva essa execução, eles podem ser uma grande vitória.Certamente não vai doer, mas o ganho que você verá dependerá muito de onde seu tempo é gasto atualmente.

aliás, o mmcache foi incluído em um projeto diferente agora, esqueci o nome, mas o Google lhe dirá.

Eu uso o APC em meus servidores de produção e ele funciona muito bem imediatamente.Compile-o e adicione-o ao PHP e não há muitos ajustes a fazer.Eu verifico de vez em quando apenas para revisar estatísticas, mas como uso muito o MVC, todos os arquivos principais (roteadores, controladores, etc.) raramente mudam no dia a dia, para que o código permaneça compilado e seja executado de forma bastante eficiente .

atualmente usamos apc, gratuito e era apenas um simples plug and play em nossos servidores ativos.Proporcionou um enorme aumento de desempenho para nosso site, especialmente à medida que o tamanho do projeto aumentou.Também desativei o apc.stat para que ele não verifique se o código foi atualizado, então sempre que precisarmos atualizar o código no site ativo reiniciamos o apache.

Eu uso o APC e posso atestar que ele pode reduzir drasticamente a carga de CPU e E/S em um servidor de aplicativos se você mantiver uma alta taxa de acertos no cache.Isso não apenas evita que você tenha que compilar, mas também evita que você tenha que ler os arquivos php do disco.(ou seja,os bytecodes são servidos diretamente da memória principal, por isso é super rápido). Reduz a velocidade de renderização de uma única página e aumenta as solicitações por segundo que seu servidor pode manipular.

Se você usa RedHat ou CentOS, instalar o APC é super simples:

yum install php-devel httpd-devel php-pear
pecl install apc 
echo "extension=apc.so" > /etc/php.d/apc.ini
# if you're using SELinux:
chcon "system_u:object_r:textrel_shlib_t" /usr/lib/php/modules/apc.so
/etc/init.d/httpd restart

Você perguntou sobre as desvantagens.A única desvantagem é que requer alguma memória.O padrão no APC é 30 MB, mas pode ser ajustado, e o custo de um pouco de memória mais do que compensa com o aumento da velocidade e taxa de resposta.

Os testes do BlaM incluíram todas as chamadas de banco de dados feitas pelo WordPress.Ao fazer menos chamadas de banco de dados, você verá que o ganho de desempenho dos caches de opcode será ainda mais dramático.

Eu usei o Zend Accelerator há pouco tempo (2004).Certamente proporcionou alguns ganhos significativos de desempenho no código com o qual poderia trabalhar, mas infelizmente o sistema que eu estava usando foi projetado para carregar código dinamicamente e depois avaliá-lo, o que o Zend Accelerator não pôde fazer muito na época (e eu ' acho que ainda não posso).

Por outro lado, certamente vimos alguns problemas de cache (onde o código seria alterado, mas a versão compilada sincronizaria com a alteração por um motivo ou outro).Imagino que esses problemas provavelmente já tenham sido resolvidos.

De qualquer forma, não tenho números de comparação rígidos e certamente não escrevi o mesmo sistema em ambientes diferentes para comparação, mas para a grande maioria dos sistemas, o PHP não vai prejudicar seu desempenho.

Já conhece o Falanger?Ele compila PHP para código .NET.Aqui estão alguns benchmarks que mostram que pode melhorar drasticamente o desempenho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top