PHP扩展--opcache安装及配置
簡介
Optimizer+ 是 Zend 開發(fā)的閉源但可以免費使用的 PHP 優(yōu)化加速組件,是第一個也是最快的 opcode 緩存工具。現(xiàn)在,Zend 科技公司將 Optimizer+ 在 PHP License 下開源成為 Zend Opcache。
Zend OPcache 通過 opcode 緩存和優(yōu)化提供更快的 PHP 執(zhí)行過程。它將預(yù)編譯的腳本文件存儲在共享內(nèi)存中供以后使用,從而避免了從磁盤讀取代碼并進行編譯的時間消耗。同時,它還應(yīng)用了一些代碼優(yōu)化模式,使得代碼執(zhí)行更快。
當解釋器完成對腳本代碼的分析后,便將它們生成可以直接運行的中間代碼,也稱為操作碼(Operate Code,opcode)。Opcode cache 的目地是避免重復(fù)編譯,減少 CPU 和內(nèi)存開銷。如果動態(tài)內(nèi)容的性能瓶頸不在于 CPU 和內(nèi)存,而在于 I/O 操作,比如數(shù)據(jù)庫查詢帶來的磁盤 I/O 開銷,那么 opcode cache 的性能提升是非常有限的。
現(xiàn)代操作碼緩存器(Optimizer+,APC2.0+,其他)使用共享內(nèi)存進行存儲,并且可以直接從中執(zhí)行文件,而不用在執(zhí)行前“反序列化”代碼。這將帶來顯著的性能加速,通常降低了整體服務(wù)器的內(nèi)存消耗,而且很少有缺點。
opcache安裝
wget http://pecl.php.net/get/zendopcache-7.0.3.tgz
tar zxvf zendopcache-7.0.3.tgz
cd zendopcache-7.0.3
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
配置php.ini
[Zend Opcache]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
opcache.enable=1 ;啟用操作碼緩存
opcache.enable_cli=1 ;僅針對CLI環(huán)境啟用操作碼緩存
opcache.memory_consumption=128 ;共享內(nèi)存大小,單位MB
opcache.interned_strings_buffer=8 ;存儲臨時字符串的內(nèi)存大小,單位MB
opcache.max_accelerated_files=4000 ;哈希表中可存儲的腳本文件數(shù)量上限
;opcache.max_wasted_percentage=5 ;浪費內(nèi)存的上限,以百分比計
;opcache.use_cwd=1;附加改腳本的工作目錄,避免同名腳本沖突
opcache.validate_timestamps=1 ;每隔revalidate_freq 設(shè)定的秒數(shù) 檢查腳本是否更新
opcache.revalidate_freq=60 ;
;opcache.revalidate_path=0 ;如果禁用此選項,在同一個 include_path 已存在的緩存文件會被重用
;opcache.save_comments=1 ;禁用后將也不會加載注釋內(nèi)容
opcache.fast_shutdown=1 ;一次釋放全部請求變量的內(nèi)存
opcache.enable_file_override=0 ; 如果啟用,則在調(diào)用函數(shù)file_exists(), is_file() 以及 is_readable() 的時候, 都會檢查操作碼緩存
;opcache.optimization_level=0xffffffff ;控制優(yōu)化級別的二進制位掩碼。
;opcache.inherited_hack=1 ;PHP 5.3之前做的優(yōu)化
;opcache.dups_fix=0 ;僅作為針對 “不可重定義類”錯誤的一種解決方案。
;opcache.blacklist_filename="" ;黑名單文件為文本文件,包含了不進行預(yù)編譯優(yōu)化的文件名
;opcache.max_file_size=0 ;以字節(jié)為單位的緩存的文件大小上限
;opcache.consistency_checks=0 ;如果是非 0 值,OPcache 將會每隔 N 次請求檢查緩存校驗和
opcache.force_restart_timeout=180 ; 如果緩存處于非激活狀態(tài),等待多少秒之后計劃重啟。
;opcache.error_log="" ;OPcache模塊的錯誤日志文件
;opcache.log_verbosity_level=1 ;OPcache模塊的日志級別。致命(0)錯誤(1) 警告(2)信息(3)調(diào)試(4)
;opcache.preferred_memory_model="" ;OPcache 首選的內(nèi)存模塊。可選值包括: mmap,shm, posix 以及 win32。
;opcache.protect_memory=0 ;保護共享內(nèi)存,以避免執(zhí)行腳本時發(fā)生非預(yù)期的寫入。 僅用于內(nèi)部調(diào)試。
;opcache.mmap_base=null ;在Windows 平臺上共享內(nèi)存段的基地址
運行結(jié)果
用Opcache Control Panel 查看執(zhí)行情況
來自為知筆記(Wiz)
總結(jié)
以上是生活随笔為你收集整理的PHP扩展--opcache安装及配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: led照明相关股票 节能越来越成为刚需
- 下一篇: pyquery 基本使用笔记