三款免费的PHP加速器:APC、eAccelerator、XCache性能比较

这些加速器统称Opcode Cache,全部都支持opcode cache功能,性能差距也不大,除opcode cache外,人们也经常用他们的变量缓存功能(与memcached不一样,apc/eac/xcache他们是存在本地内存里的,免去了网络开销,更快),早期的eac不支持变量缓存,后来支持了。xcache是中国人作品,几乎跟apc功能一样。

此外,有人曾经遭遇APC Bomb问题,据国外社区说xcache在这个问题上表现好一点,后来我们用另外的方法搞定了,没有测试数据表明是不是xcache好一点。

apc bomb问题参见:http://notmysock.org/blog/php/user-cache-timebomb.html

Turck MMCache刚出来的时候很强,性能超载Zend官方的加速器,后来Zend公司把Turck的作者挖过去了,这个产品也就退出江湖了。开源爱好者们在Turck基础上fork了一份代码,就是后来的eAccelerator!

一、PHP加速器介绍

PHP加速器是一个为了提高PHP执行效率,从而缓存起PHP的操作码,这样PHP后面执行就不用解析转换了,可以直接调用PHP操作码,这样速度上就提高了不少。

Apache中使用mod_php的请求、响应执行流程:

1、Apache接收请求。
2、Apache传递请求给mod_php。
3、mod_php定位磁盘文件,并加载到内存中。
4、mod_php编译源代码成为opcode树。
5、mod_php执行opcode树。

PHP加速器相应的就是第四步,它的目的就是防止PHP每次请求都重复编译PHP代码,因为在高访问量的网站上,大量的编译往往没有执行速度快呢?所以这 里面有个瓶颈就是PHP的重复编译既影响了速度又加载了服务器负载,为了解决此问题,PHP加速器就这样诞生了。

二、PHP加速器测试

1、测试环境

硬件: AMD Athlon 64 X2 Dual Core Processor 4400+ @ 2.2GHz CPU, 2GB 内存. 160GB SATA 硬盘

软件: Linux Ubuntu server Gutsy 7.10, Apache 2.2.4, MySQL 5.0.45 和 PHP 5.2.3

测试指令: ab -c5 -n3000 http://example.com/ (我们使用的是Apache Benchmark (ab) 工具,并发连接为5,3000次请求)

2、测试结果

  请求时间(秒) 单次请求时间(毫秒) 最大内存占用(MB) 最小内存占用(MB)
None 10.41 96.08 24 24
APC 30.45 32.84 21 21
eAccelerator 31.26 31.99 23 18
XCache 30.28 33.02 29 19

三、PHP加速器比较结果总结

1、通过测试得出eAccelerator在请求时间和内存占用综合方面是最好的。

2、通过测试得出使用加速器比无加速器在请求时间快了3倍左右。

3、通过各个官方观察,XCache是更新最快的,这也说明最有发展的。

 

赞 (0)
分享到:更多 ()