代码之家  ›  专栏  ›  技术社区  ›  epotter

我应该使用哪个PHP操作码缓存来提高性能?[关闭]

  •  56
  • epotter  · 技术社区  · 17 年前

    我正在努力提高高负载下的性能,并希望实现操作码缓存。我应该使用以下哪项?

    我也愿意接受任何其他被我忽视的选择。

    目前运行在带有Apache2和php 5.2的stock debian蚀刻上

    [更新1 ]

    如何创建安装链接

    [更新2 ]

    基于给出的答案和反馈,我在应用程序上使用以下ApacheJMeter测试计划测试了所有3个实现:

    • 登录
    • 访问主页

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

    无操作码缓存
    No Opcode Caching

    空气污染指数
    APC

    电子加速器
    eAccelerator

    超高速缓存
    XCache

    性能图(越小越好)
    Performance Graph

    从以上结果来看,与APC和Xcache相比,eaccelerator的性能稍有优势。然而,从上述数据中最重要的是,任何类型的操作码缓存都会极大地提高性能。

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

    • 软件包在正式的Debian存储库中可用
    • 更多功能控制面板

    总结我的经验:

    易于安装:apc>eaccelerator>xcache
    性能:每个加速器>APC、Xcache
    控制面板:APC>Xcache>每个加速器

    7 回复  |  直到 11 年前
        1
  •  16
  •   mercutio    17 年前

    我认为答案可能取决于您运行的Web应用程序的类型。两年前我自己做了这个决定,无法在Zend优化器和eaccelerator之间做出决定。

    为了做出决定,我使用AB(Apache Bench)测试了服务器,并测试了三种组合(Zend、eaccelerator、both running),证明了eaccelerator本身的性能最好。

    如果你有足够的时间,我建议你自己做类似的测试,并根据你的结果做出决定。

        2
  •  5
  •   Ed Haber    17 年前

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

    本文讨论了将APC整合到pHP6中的问题: http://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc

    在Debian蚀刻机上安装APC的说明如下: http://www.howtoforge.com/apc-php5-apache2-debian-etch

        3
  •  5
  •   James    11 年前

    我跑了好几次 benchmarks with eAcclerator, APC, XCache 和Zend优化器(即使Zend是优化器,而不是缓存)。

    Benchmark Results http://blogs.interdose.com/dominik/wp-content/uploads/2008/04/opcode_wordpress.png

    结果:每个加速器的速度最快(在所有测试中),其次是xcache和apc。(图中的是调用WordPress主页10000次的秒数)。

    Zend优化器使一切都变慢了!!).

        4
  •  4
  •   Thomas Owens    17 年前

    我不能肯定地告诉你,但是我现在工作的地方是看APC和每个加速器。但是,这可能会影响你- APC will be integrated into a future release of PHP (感谢Ed Haber的链接)。

        5
  •  3
  •   Dana the Sane    17 年前

    我在每个加速器上都取得了很好的成功(无负载的速度提升很明显),但Xcache似乎也很有前途。但是,您可能希望对每个应用程序运行一些测试,您的应用程序可能对每个应用程序进行不同的扩展。

        6
  •  1
  •   The How-To Geek    17 年前

    我用Xcache已经一年多了,一点问题都没有。

    我试着切换到每个加速器,但最终出现了一系列的分段错误(错误的宽容度较低)。每个加速器的主要好处是它不仅是一个操作码缓存,而且还是一个优化器。

    您应该使用它们中的每一个完全测试您的应用程序,以确保没有任何问题,然后我将使用Apachebench在负载下测试它。

        7
  •  1
  •   MarkR    17 年前

    这些附加组件历史上引入了许多奇怪的bug来跟踪。这些错误可能会导致不一致的行为,这是不容易诊断的,因为它取决于缓存的状态。

    所以我会说:

    1. 不要使用上述任何一种。购买更多的tin,这是一种更可靠(即无错误)的提高性能的方法。 或
    2. 在测试了你的应用程序的裤子之后,选择上面哪一个是最健壮的。

    但我会说:

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