我应该使用哪个PHP操作码caching器来提高性能?

我试图提高高负载下的性能,并希望实现操作码caching。 我应该使用以下哪一项?

  • APC – 安装指南
  • eAccelerator – 安装指南
  • XCache – 安装指南

我也开放给任何其他的替代品,我的雷达下滑。

目前使用Apache 2和PHP 5.2在Debian Etch上运行

[更新1]

HowtoForge安装链接添加

[更新2]

基于给出的答案和反馈,我已经在我的应用程序中使用以下Apache JMetertesting计划testing了所有3个实现:

  • login
  • 访问主页

有50个并发连接,结果如下:

没有操作码caching
没有操作码缓存

APC
APC

eAccelerator在
eAccelerator在

XCache将
XCache将

性能图(越小越好)
性能图

从以上结果可以看出,与APC和XCache相比,eAccelerator在性能上略有优势。 但是,从上面的数据来看,最重要的是任何types的操作码caching都会大大提高性能。

由于以下两个原因,我决定使用APC:

  • 软件包在官方Debian仓库中可用
  • 更多的function控制面板

总结我的经验:

安装简便:APC> eAccelerator> XCache
性能:eAccelerator> APC,XCache
控制面板:APC> XCache> eAccelerator

我想答案可能取决于您正在运行的Web应用程序的types。 我不得不在两年前做出这个决定,不能在Zend Optimizer和eAccelerator之间做出决定。

为了做出我的决定,我用ab(apache bench)来testing服务器,并testing了三种组合(zend,eaccelerator,都运行),并certificateeAccelerator自己发挥了最大的性能。

如果你有足够的时间,我会build议你自己做类似的testing,并根据你的结果作出决定。

我使用APC,因为它很容易安装在Windows中,我正在开发WAMP。

在这里讨论了将APC整合到PHP6中: http ://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

有关在Debian Etch上安装APC的说明,请访问: http : //www.howtoforge.com/apc-php5-apache2-debian-etch

我用eAcclerator,APC,XCache和Zend Optimizer运行了几个基准 (尽pipeZend是优化器,而不是caching)。

基准testing结果http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

结果:eAccelerator是最快的(在所有testing中),其次是XCache和APC。 (图中的数字是调用WordPress主页10,000次的秒数)。

Zend Optimizer使一切变得更慢(!)。

我不能肯定地告诉你,但我现在工作的地方正在看APC和电子加速器。 但是,这可能会影响到你 – APC将被整合到未来的PHP版本中 (感谢Ed Haber的链接)。

我用eAccelerator取得了很好的成功(速度提高,没有负载是显而易见的),但XCache也似乎很有希望。 你可能想尝试一下每一个试验,你的应用程序可能会在每个方面有不同的比例。

我已经使用XCache一年多了,没有任何问题。

我试图切换到eAccelerator,但结束了一堆分段错误(这是不容错误的)。 eAccelerator的主要优点是它不仅仅是一个操作码caching,它也是一个优化器。

你应该完全testing你的应用程序,以确保没有任何问题,然后我会使用apachebench在负载下进行testing。

这些插件在历史上引入了很多奇怪的错误来追踪。 这些错误可能会导致不一致的行为,因为它取决于caching的状态,因此无法轻易诊断。

所以我会说:

  1. 不要使用上面的任何一个。 买更多的锡,这是一个更可靠(即无差错)的方式来提高性能。 要么
  2. 与上面哪个是最强大的,已经testing了你的应用程序的裤子。

但是我会说:

  1. 确保它是真正的PHP代码parsing,通过分析你的应用程序导致你的性能问题。 我认为这很可能不是 – 在这种情况下,通过安装其中的任何一个,你会浪费你的时间(实际上,利用你的时间负面的生产力)。