apc vs eaccelerator vs xcache

105

Estou fazendo pesquisas sobre qual desses usar e realmente não consigo encontrar um que se destaque. O Eaccelerator é mais rápido que o APC , mas o APC tem uma manutenção melhor. O Xcache é mais rápido, mas os outros têm sintaxe mais fácil.

Alguém tem recomendações sobre quais usar e por quê?

Galen
fonte
1
O eAccelerator não parece ter sido lançado há mais de um ano. O VC do xcache certamente está ativo, mas não consegui focar nos lançamentos e em um foco também. Tudo se resume a um pedaço de software que está sendo mantido e a APC vence.
Até
11
É o terceiro trimestre de 2011. As coisas mudaram desde 2009?
john

Respostas:

110

O APC será incluído no PHP 6 e acho que foi escolhido por um bom motivo :)

É bastante fácil de instalar e certamente acelera as coisas.

David Snabel-Caunt
fonte
Estive pesando esses três e decidi começar a testar com o APC por esse motivo. Os outros dois também parecem ter alguns problemas de estabilidade.
Steve Claridge,
46
Eu só tive três problemas com o APC, todos os quais estavam sob meu controle. 1) Não deixe o APC encher. Certifique-se de alocar memória suficiente 2) Não use apc_clear_cache () em um servidor ativo 3) APC realmente não lida bem com contenção de bloqueio pesado - não tente gravar em uma única chave de vários processos simultaneamente.
Frank Farmer
10
Na verdade, não existe atualmente PHP6.
Evert
20
Uma vez que este tópico é um dos principais resultados do Google, ele provavelmente deve ser atualizado para indicar que o Zend Optimizer foi mesclado com o PHP 5.5 que foi lançado este mês. Você pode desligá-lo e usar o APC, embora eu não saiba por que você deseja.
Floresta de
2
@Benjamin O armazenamento de dados do usuário pode ser restaurado com APCu ( github.com/krakjoe/apcu ), que pode ser instalado e usado junto com o ZO.
Swader
23

Confira benchmarks e comparações:

aqui e aqui e ali

Boris Guéry
fonte
15
Que pena que eles são tão velhos. 2006? Ewww.
analytik
3
Suponho que podemos esperar alguns anos e o comentário anterior será antigo.
benmarks de
5
Sucesso. Já tem 3 anos. Ewwww.
Swader
3
Cara, já estamos em 2016. Alguém pode refazer os benchmarks uma década atrás?
Pacerier
13

APC definitivamente. É escrito pelos caras do PHP, então mesmo que não compartilhe as velocidades mais altas, você pode apostar no fato de que é da mais alta qualidade.

Além disso, você obtém alguns outros recursos interessantes que eu uso o tempo todo ( http://www.php.net/apc ).

Evert
fonte
3
O Facebook também é um grande usuário do APC - eles usam gigabytes, senão terrabytes de cache APC. Muitas das melhorias que eles fizeram foram liberadas e integradas à versão principal do APC.
Frank Farmer
13
Você está pensando em memcached.
Evert
3
@Cada FB tenta acessar um cache APC local antes de fazer uma conexão TCP / IP para memcached scribd.com/doc/4069180/…
Andy
1
Provavelmente ... mas quando ele está falando sobre melhorias que foram lançadas de volta, etc., é provavelmente o Memcache. A menos que eles tenham feito o mesmo com apc.
Evert,
@Andy, o Facebook não usa nada disso. Ele usa seu próprio HipHop VM.
Pacerier
11

No final, optei pelo eAccelerator - o aumento de velocidade, o menor consumo de memória e o fato de ser muito fácil de instalar me influenciaram. Ele também possui um front-end baseado na web para limpar o cache e fornecer algumas estatísticas.

O fato de não ser mais mantido não é um problema para mim - funciona e é tudo que me importa. No futuro, se ele quebrar o PHP6 (ou qualquer outro), então irei reavaliar minha decisão e provavelmente escolher o APC simplesmente porque foi adotado pelos desenvolvedores de PHP (então deve ser ainda mais fácil de instalar)

gbjbaanb
fonte
4
"se quebrar o PHP6" ... não quer dizer "quando?" :)
Brian Lacy
2
É engraçado porque, 5,5 anos depois, ainda não existe um "PHP 6".
Eric L.
@Eirik, PHP 6 é tão ontem. Já são 7 horas.
Pacerier
11

Pode ser importante apontar as versões atuais estáveis, instáveis ​​e dev de cada uma (incluindo a data):

APC

http://pecl.php.net/package/apc

dev        dev          2013-09-12
3.1.14     beta         2013-01-02
3.1.9      stable       2011-05-14

Xcache

http://xcache.lighttpd.net/

dev/3.2     dev        2013-12-13
dev/3.1     dev        2013-11-05
3.1.0       stable     2013-10-10
3.0.4       stable     2013-10-10

eAccelerator

https://github.com/eaccelerator/eaccelerator

dev         dev        2012-08-16
0.9.6-rc1   unstable   2010-01-26
0.9.5.1     stable     2007-05-16
Ryan Schumacher
fonte
1
Versões mais recentes atualizadas - Xcache parece ter mais atividade tanto em novos recursos quanto em correções de versões anteriores
Ryan Schumacher
9

Em todos os testes que vi, o eAccelerator tem um desempenho mais rápido do que qualquer outro cache por aí e usa menos memória para fazer isso. Ele vem com um script bacana para visualizar a utilização do cache e limpar o cache, etc. eAccelerator é compatível com xdebug e Zend Optimizer.

APC está sendo incluído no PHP porque é mantido pelos desenvolvedores de PHP. Ele tem um desempenho muito bom, mas não tão bom quanto o eAccelerator. E tem problemas de compatibilidade com o Zend Optimizer.

O Xcache foi feito pelos desenvolvedores do lighttpd, benchmarks mostram que ele tem um desempenho semelhante ao eAccelerator e mais rápido do que o APC.

Então, qual é o melhor?

APC = Ótimo se você quer um cache fácil que sempre funcionará com PHP, sem complicações. eAccelerator = Se você tiver tempo para mantê-lo, mantenha-o atualizado e entenda como funciona, ele terá um desempenho mais rápido. O suporte de longo prazo não é tão certo quanto o APC porque o APC é feito pelos desenvolvedores do PHP.

Prom3th3an
fonte
7

Testei eAccelerator e XCache com Apache, Lighttp e Nginx com um site Wordpress. O eAccelerator sempre ganha. O ruim são apenas os pacotes ausentes para Debian e Ubuntu. Depois de uma atualização do PHP, muitas vezes o servidor não funciona mais se os módulos do eAccelerator não forem recompilados.

eAccelerator último RC é de 2009/07/15 (0.9.6 rc1) com suporte para PHP 5.3

Devarni
fonte
6

Eu sempre usei APC com php 5.1 e 5.2, mas tive muitos erros (aleatórios) usando APC com php 5.3: páginas em branco estranhas, erros aleatórios de falta de memória. Todos eles desapareceram quando desativei o APC. Mas essa não era uma opção, já que ele está executando um site de alto volume.

Então, tentei o eaccelerator. Até agora tem sido sólido e o aumento de velocidade é ainda maior do que com APC. Os caras da APC realmente precisam gastar algum tempo corrigindo bugs.

Miele
fonte
1
Eu tive os mesmos problemas com APC e php 5.3. Obrigado pelo comentário. PHP sem nenhum cache na minha configuração é muito mais rápido e confiável do que com APC. As páginas em branco e os erros de falta de memória estavam me deixando louco até que removi o APC.
Paul D. Eden
nunca descobri o motivo pelo qual o kernel mata php-fpm por causa do apc
vimdude
4

Acho que o APC é o caminho a percorrer, a menos que você esteja usando o Zend Optimizer no site. APC é incompatível com Zend Optimizer, então, nesse caso, você precisará usar algo como o eAccelerator.

rg88
fonte
Se você está usando o Zend Optimizer, não precisa de mais nada, porque ele também faz cache de optcode e expõe uma interface compatível com APC.
txyoji
3

Mesmo o eacceleator e o xcache têm um desempenho muito bom durante cargas moderadas, o APC mantém sua estabilidade sob grande intensidade de solicitação. Se estamos falando de algumas centenas de solicitações / s aqui, você não sentirá a diferença. Mas se você está tentando responder mais, fique definitivamente com o APC. Especialmente se o seu aplicativo tiver características excessivamente dinâmicas que provavelmente causarão problemas de bloqueio sob tais cargas. http://www.ipsure.com/blog/2011/eaccelerator-as-zend-extension-high-load-averages-issue/ pode ajudar.

Matt Dryden
fonte
2

Segfaults APC o dia e a noite toda, não tenho experiência com eAccelerator, mas o XCache é muito confiável com muitas opções e desenvolvimento constante.

ManreeRist
fonte