实战!利用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.

Comments

S7C1hr

发表评论

(必填)

(必填)


MC Inside