php APC

来源:互联网 发布:php smtp ssl 编辑:程序博客网 时间:2024/05/17 01:56
1、APC缓存简介
APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”。它为我们提供了缓存和优化PHP的中间代码的框架。 APC的缓存分两部分:系统缓存和用户数据缓存。
系统缓存
它是指APC把PHP文件源码的编译结果缓存起来,然后在每次调用时先对比时间标记。如果未过期,则使用缓存的中间代码运行。默认缓存
 3600s(一小时)。但是这样仍会浪费大量CPU时间。因此可以在php.ini中设置system缓存为永不过期(apc.ttl=0)。不过如果这样设置,改运php代码后需要重启WEB服务器。目前使用较多的是指此类缓存。
用户数据缓存
缓存由用户在编写PHP代码时用apc_store和apc_fetch函数操作读取、写入的。如果数据量不大的话,可以一试。如果数据量大,使用类似memcache此类的更加专著的内存缓存方案会更好


安装APC模块
第一步:下载php_apc.dll 在http://pecl.php.net/package/apc 要与php版本对应 将php_apc.dll放入你的ext目录
第二部   在php.ini中配置APC模块,详细参数参考手册,常用的设置
extension=php_apc.dll
apc.enabled = 1// 0禁用,1开启
apc.shm_segments = 1 //编译器缓存要分配的共享内存块的数目。如果 APC 用光了共享内存但是已经将 apc.shm_size 设为了系统所能允许的最大值,可以尝试增大此值。
apc.shm_size = 64 //以 MB 为单位的每个共享内存块的大小。
apc.max_file_size = 10M //防止文件大于这个值缓存。默认为1M
apc.stat=1//是否启用脚本更新检查。 改变这个指令值要非常小心。 默认值 On 表示APC在每次请求脚本时都检查脚本是否被更新, 如果被更新则自动重新编译和缓存编译后的内容。
运行phpinfo命令可看到以下信息




关于性能在CSDN    http://blog.csdn.net/lgg201/article/details/5877798 goosman专门做过实验用memcache和APC测试的,不过貌似他是在单机模式下做的测试,大致的结论是:
1. 在nginx+fastcgi的web环境下, apc随着数据量增大, 性能下降明显, 在超过8万条后, 性能低于Memcache
2. 在CLI模式下运行, apc性能稳定, 60万条数据一直远超memcache
如果用APC缓存用户数据,下面简单的例子:


apc_store('apc_test', 'this is a test', 3600);//缓存一个名字为 apc_test 值为 this is a test 的变量
print apc_fetch('apc_test'); //输出apc_test
0 0
原创粉丝点击