实战!利用APC来缓存和优化 PHP 的中间代码
Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存。它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码。
部署APC很简单:
1. 安装APC,PHP的一个扩展。
2. 修改php.ini文件,加入extension = apc.so句 ,启用apc扩展(更多apc运行时配置可见http://cn.php.net/manual/en/apc.configuration.php)。
3. 重启Apache,使php配置生效。
我做了一个测试,看看APC到底能给php应用带来多大的性能上的提高。
测试环境如下:
APC : Version 3.0.19
PHP : Version 5.2.4-2ubuntu5.5
APC Host : saturn(我的虚拟机,256M内存)
Server Software : Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.5 with Suhosin-Patch
PHP 应用 : CAKEPHP 1.2.1.8004
性能测试工具 :apache ab
测试数据如下:
没启用APC的所得的数据
Concurrency Level: 10
Time taken for tests: 119.262053 seconds
Complete requests: 500
Failed requests: 47
(Connect: 0, Length: 47, Exceptions: 0)
Write errors: 0
Total transferred: 670445 bytes
HTML transferred: 492945 bytes
Requests per second: 4.19 [#/sec] (mean)
Time per request: 2385.241 [ms] (mean)
Time per request: 238.524 [ms] (mean, across all concurrent requests)
Transfer rate: 5.48 [Kbytes/sec] received
启用APC的所得的数据
Concurrency Level: 10
Time taken for tests: 19.495444 seconds
Complete requests: 500
Failed requests: 55
(Connect: 0, Length: 55, Exceptions: 0)
Write errors: 0
Total transferred: 670435 bytes
HTML transferred: 492935 bytes
Requests per second: 25.65 [#/sec] (mean)
Time per request: 389.909 [ms] (mean)
Time per request: 38.991 [ms] (mean, across all concurrent requests)
Transfer rate: 33.55 [Kbytes/sec] received
测试数据可以看到,没启用APC时服务器每秒只可以处理4.19个请求,启用APC时服务器每秒处理请求数据增加至25.65个。性能提升接近600%。当然这个数据在不同的环境下会有出入,但是无论怎样,APC可以大幅度提高PHP的性能是肯定的。
PHP优化工具还有很多,如eAccelerator, Xcache等等。据网上资料显示eAccelerator性能要优于APC和Xcache。而我们的tapd平台服务器所用的PHP优化工具正是eAccelerator。
If you enjoyed this post, please consider to leave a comment or subscribe to the feed and get future articles delivered to your feed reader.

S7C1hr