apc vs加速器vs xcache


105

我正在研究要使用其中哪一种,而我却找不到哪一种脱颖而出。 加速器APC快,但是APC维护得更好。Xcache更快,但是其他的语法更简单。

任何人都有关于使用哪个以及为什么使用的建议?


1
eAccelerator看起来好像已经超过一年了。xcache的VC肯定是活跃的,但我也无法集中精力发布和关注。一切都归结为一个正在维护的软件,而APC赢得了它。
直到

11
现在是2011年第三季度。自2009年以来情况发生了变化吗?
约翰

Answers:


110

APC将包含在PHP 6中,我猜它被选中是有充分理由的:)

它相当容易安装,并且肯定可以加快速度。


我一直在权衡这三个方面,因此决定开始使用APC进行测试。另外两个似乎也有一些稳定性问题。
史蒂夫·克拉里奇

46
我只遇到了APC的三个问题,所有这些问题都由我掌控。1)不要让APC充满。确保分配足够的内存2)不要在活动服务器上使用apc_clear_cache()3)APC不能很好地应对大量锁争用-不要尝试同时从多个进程中写入单个键。
Frank Farmer

10
实际上,目前没有像PHP6这样的东西。
Evert

20
由于此线程在Google中排名第一,因此可能应进行​​更新以指示Zend Optimizer已合并到本月发布的PHP 5.5中。您可以关闭它,而改用APC,尽管我不确定您为什么要这么做。
2013年

2
@Benjamin用户数据存储可以使用APCu(github.com/krakjoe/apcu)还原,该APCu可与ZO一起安装和使用。
Swader


13

绝对是APC。它是由PHP专家编写的,因此即使它可能没有共享最高的速度,您也可以确信它是最高的质量。

另外,您还会获得我一直使用的其他一些精美功能(http://www.php.net/apc)。


3
Facebook也是APC的重度用户-他们使用的是千兆字节(如果不是TB级的APC缓存)。他们所做的许多改进已经发布并集成到APC的主版本中。
Frank Farmer

13
您正在考虑memcached。
埃弗特

3
@每个FB尝试在与memcached scribd.com/doc/4069180/
Andy 2010年

1
可能..但是当他谈论已发布的改进等时,可能就是Memcache。除非他们对apc做过同样的事情。
埃弗特

@ Andy,Facebook不使用任何这些。它使用自己的HipHop VM。
Pacerier

11

最后,我选择了eAccelerator-速度提升,较小的内存占用以及非常易于安装的事实使我感动。它还有一个不错的基于Web的前端,可以清除缓存并提供一些统计信息。

它不再被维护的事实对我来说不是问题-它起作用,这就是我所关心的全部。将来,如果它破坏了PHP6(或其他功能),那么我将重新评估我的决定,并可能会选择APC,这仅仅是因为它已被PHP开发人员采用(因此安装起来应该更容易)


4
“如果它破坏了PHP6”……您的意思不是“什么时候?” :)
Brian Lacy 2010年

2
很有趣,因为5.5年后,仍然没有“ PHP 6”。
Eric L.

@ Eirik,PHP 6昨天是如此。现在是7点
Pacerier

11

指出每个版本的当前稳定,不稳定和开发版本(包括日期)可能很重要:

装甲运兵车

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

电子加速器

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

1
更新的最新版本– Xcache似乎在新功能和修补以前的版本中拥有最多的活动
Ryan Schumacher

9

在我看到的所有测试中,eAccelerator的执行速度比那里的任何其他缓存都要快,并且使用的内存更少。它带有一个漂亮的脚本,可以查看缓存利用率并清除缓存等。eAccelerator与xdebug和Zend Optimizer兼容。

APC被包含在PHP中是因为它是由PHP开发人员维护的。它的性能非常好,但不如eAccelerator。而且Zend Optimizer存在兼容性问题。

Xcache由lighttpd的开发人员制造,基准测试表明它的性能与eAccelerator相似,并且比APC更快。

那么哪个最好?

APC =很好,如果您想要一个始终可以与PHP一起使用的简单缓存,不必大惊小怪。eAccelerator =如果您有时间对其进行维护,请使其保持最新状态并了解其工作原理,它将更快地执行。长期支持并不像APC那样确定,因为APC由PHP开发人员完成。


7

我用Apache,Lighttp和Nginx用Wordpress网站测试了eAccelerator和XCache。eAccelerator每次都赢。不好的是只有Debian和Ubuntu缺少软件包。PHP更新后,如果未重新编译eAccelerator模块,则服务器通常无法正常工作。

eAccelerator的上一个RC是从2009/07/15(0.9.6 rc1)起,支持PHP 5.3


6

我一直将APC与php 5.1和5.2一起使用,但在php 5.3中使用APC却遇到了很多(随机)错误:奇怪的空白页,随机的内存不足错误。当我禁用APC时,它们都消失了。但这不是选择,因为它运行着大量的网站。

所以我尝试了加速器。到目前为止,它是坚如磐石,并且速度的提高甚至超过了APC。APC的家伙真的需要花一些时间进行错误修复。


1
我在APC和php 5.3中遇到了相同的问题。感谢您的评论。在我的设置中没有任何缓存的PHP比使用APC的速度和可靠性要快得多。在我删除APC之前,空白页和内存不足错误使我发疯。
Paul D. Eden 2013年

从来没有想过内核会因为apc杀死php-fpm的原因
vimdude 2015年

4

我认为除非您在站点上使用Zend Optimizer,否则APC是必经之路。APC与Zend Optimizer不兼容,因此在这种情况下,您将需要使用eAccelerator之类的工具。


如果您使用的是Zend Optimizer,则不需要其他任何东西,因为它也可以进行optcode缓存并公开与APC兼容的接口。
txyoji 2012年

3

即使在中等负载下,eacceleator和xcache的性能也相当不错,在严重的请求强度下,APC仍可保持其稳定性。如果我们在这里谈论每秒几百个请求,您将不会感到有什么不同。但是,如果您想做出更多响应,请务必坚持使用APC。特别是如果您的应用程序具有过大的动态特性,这可能会导致在此类负载下出现锁定问题。http://www.ipsure.com/blog/2011/eaccelerator-as-zend-extension-high-load-averages-issue/可能会有所帮助。



2

APC整天和整夜出现故障,没有使用eAccelerator的经验,但是XCache在大量选项和持续开发中非常可靠。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.