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