XCache 是一个又快又稳定的 PHP opcode 缓存器. 通过良好的测试并在大流量/高负载的生产机器上稳定运行. 它能够将PHP代码进行编译(表现相似于.NET和JAVA的编译,内部机制不一样),这样能够不用重复读取PHP文件,加速整个程序的运行效率;也能够缓存数据到内存中,直接能够方便调用,例如你的一些不会常常改动的数据,只用一次从数据库读取出来后保存到Xcache中。php
目前最新的XCache版本是1.3.0,支持各类php版本。能够到html
http://xcache.lighttpd.net/pub/Releases/数据库
下载XCache最新的发行版本。缓存
1.安装安全
将你的Xcache下载文件解压,解压后有个Release_Ts文件夹,把这个文件夹下的php_xcache.dll放到你的PHP的ext目录下。服务器
接着将Release_Ts文件夹的xcache.ini内容拷贝到php.ini中的最后面,并修改相应选项。主要是:并发
[xcache.admin]分布式
xcache.admin.enable_auth = On函数
xcache.admin.user = "username"post
; xcache.admin.pass = md5($密码)
xcache.admin.pass = "password"
[xcache]
; 这里的多数选项仅在 ini 里能够修改, 这里列出的都是默认值, 除非另外说明
; select low level shm/allocator scheme implemenation
xcache.shm_scheme = "mmap"
; 禁用: xcache.size=0
; 启用: xcache.size=64M 之类 (任意>0的值) 同时请注意您的系统 mmap 上限
xcache.size = 64M
; 建议设置为 cpu 数 (cat /proc/cpuinfo |grep -c processor)
xcache.count = 1
; 只是个参考值, 您能够放心地存储多于此数量的项目(php脚本/变量)
xcache.slots = 8K
; 缓存项目的 ttl, 0=永久
xcache.ttl = 0
; 扫描过时项目的时间间隔, 0=不扫描, 其余值以秒为单位
xcache.gc_interval = 0
; 同上, 只是针对变量缓存设置
xcache.var_size = 32M
xcache.var_count = 1
xcache.var_slots = 8K
; 默认, 容许 ini_set()
xcache.var_ttl = 0
; 最大ttl值
xcache.var_maxttl = 0
xcache.var_gc_interval = 0
配置完后,重启服务器便可。经过phpinfo函数能够查看Xcache组件的参数。另外,把Release_Ts目录下的admin文件夹复制到Web服务器根目录下,能够访问xcache的管理界面,从中查看被cache的php文件和数据。
2.Cakephp中使用
cakephp中使用xcache很方便。设置config/core.php中缓存配置
Cache::config('default', array(
'engine' => 'Xcache',
'duration'=> 3600,
'probability'=> 100,
'prefix' => Inflector::slug(APP_DIR) . '_',
'user' => 'your_user_name',
'password' => 'md5(your_password)',
));
并设置Configure::write('Cache.disable', false)和Configure::write('Cache.check', false)。那么全部控制器的代码都会被缓存。若是只须要选择性的缓存一部分控制器代码,能够设置Configure::write('Cache.check', true)而且在要缓存的控制器中设置var $cacheAction = true。
使用Apache的ab命令测试使用cakephp封装的Captcha组件生成验证码图片。在5个并发的状况下使用xcache后每秒响应请求数大约提升了5倍。
OP优化器性能比较:http://blog.chinaunix.net/u3/103421/showart_2055633.html