Os produtos que você lista servem a propósitos diferentes.
Caches OPCode
Existem muitos aceleradores PHP (OPCaches) como vistos nesta lista da Wikipedia . Como é comum nos produtos de código aberto, todos são bastante semelhantes. O XCache é o acelerador PHP lighttp e é a opção padrão quando você está executando esse HTTPd. Ele também funciona bem com o Apache, no entanto, a APC parece um pouco mais "socialmente bem com os outros" falando socialmente, sendo oficialmente suportada como parte do PHP e é lançada em etapas com a distribuição oficial do PHP.
Abandonei o usAccelerator devido ao seu desenvolvimento lento e atrasado em relação às versões do PHP, e o status oficial de abençoado que a APC oferece com desempenho semelhante.
Esses produtos geralmente são vendidos; sem alteração no código, aumento instantâneo do desempenho. Com grandes bases de código (Drupal, Wordpress), o desempenho pode ser até 3x melhor , diminuindo o tempo de resposta e o uso de memória.
Cache de Dados
Memcache é um produto ligeiramente diferente - você pode pensar nele como um sistema leve de valores-chave que pode ser dimensionado para vários servidores . O software precisa ser aprimorado para dar suporte ao Memcache e resolve alguns problemas melhor do que outros. Se você tinha uma lista de valores em tempo real do seu site, pode usar o Memcache para manter uma lista residente do valor atual que é exibido em seu site. Você pode usá-lo para armazenar dados da sessão para reutilização a curto prazo. Você não o usaria para outras coisas, como caches de página inteira ou como substituto do MySQL.
Também existem complementos do Wordpress, como o WP-Super-Cache, que podem melhorar drasticamente o desempenho do Wordpress (na verdade, o WP-Super-Cache pode rivalizar com sites estáticos baseados em HTML em muitos casos)
Em resumo - eu recomendo a APC se você quiser um "configure e esqueça, produto bem suportado".
[4]: http://
" para corrigi-lo.Uma boa resposta foi publicada no stackoverflow, que responde bem à sua pergunta.
https://stackoverflow.com/questions/28716/which-php-opcode-cacher-should-i-use-to-improve-performance
fonte
A APC será incorporada ao PHP6, por isso é uma escolha lógica. Eu uso, e o aumento de desempenho é incrível. Se você precisar armazenar em cache algo diferente de opcodes (ou seja, resultados da consulta db), poderá usar a APC para isso também, mas não é possível compartilhar caches da APC entre vários servidores. Se você só precisa armazenar em cache em um único servidor, a APC é ótima. Se você precisar expandir para vários servidores e quiser compartilhar um cache entre eles, o memcached é o seu jeito.
Uma coisa que eu faria, no entanto, era criar uma classe de wrapper para qualquer cache (sem código op) que você fizer. Dessa forma, você pode trocar o mecanismo de cache sem alterar seu código.
fonte
Apenas para observar que as coisas mudaram um pouco e parece que a APC não será incluída no núcleo do PHP 6.
A APC tem desenvolvimento lento e parece que nunca será compatível com o PHP 5.5. Por isso, parece que os caras do PHP definirão a extensão de cache de código de código Zend OPCache como a extensão PHP CORE. Você pode ler mais aqui http://wiki.php.net/rfc/optimizerplus .
Nota importante: O Zend OPCache não possui cache de dados do usuário como o APC; portanto, se você precisar de cache de dados do usuário, poderá usá-lo junto com o Memcache.
fonte
Se estiver executando a versão PHP pelo menos 5,50, o OpCache é sua melhor aposta (biblioteca nativa PHP / PECL). Ele deve vir pré-compilado se estiver sendo instalado a partir do binário.
http://php.net/manual/en/book.opcache.php
Se estiver executando a versão do PHP anterior à 5.5, o APC (cache OpCode nativo do PHP / PECL) seria a opção mais simples, embora seja considerado não mantido e morto:
http://php.net/manual/en/book.apc.php
O uso da funcionalidade nativa do OpCache do PHP poupa o trabalho de manter bibliotecas de terceiros.
fonte
O Memcache armazena em cache pares de chave / valor, não opcodes. Você pode usá-lo em conjunto com um dos caches do opcode.
fonte