PHP擴展--opcache安裝及配置


簡介

Optimizer+ 是 Zend 開發的閉源但可以免費使用的 PHP 優化加速組件,是第一個也是最快的 opcode 緩存工具。現在,Zend 科技公司將 Optimizer+ 在 PHP License 下開源成為 Zend Opcache。

Zend OPcache 通過 opcode 緩存和優化提供更快的 PHP 執行過程。它將預編譯的腳本文件存儲在共享內存中供以后使用,從而避免了從磁盤讀取代碼並進行編譯的時間消耗。同時,它還應用了一些代碼優化模式,使得代碼執行更快。

當解釋器完成對腳本代碼的分析后,便將它們生成可以直接運行的中間代碼,也稱為操作碼(Operate Code,opcode)。Opcode cache 的目地是避免重復編譯,減少 CPU 和內存開銷。如果動態內容的性能瓶頸不在於 CPU 和內存,而在於 I/O 操作,比如數據庫查詢帶來的磁盤 I/O 開銷,那么 opcode cache 的性能提升是非常有限的。

現代操作碼緩存器(Optimizer+,APC2.0+,其他)使用共享內存進行存儲,並且可以直接從中執行文件,而不用在執行前“反序列化”代碼。這將帶來顯着的性能加速,通常降低了整體服務器的內存消耗,而且很少有缺點。

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環境啟用操作碼緩存
opcache.memory_consumption=128 ;共享內存大小,單位MB
opcache.interned_strings_buffer=8 ;存儲臨時字符串的內存大小,單位MB
opcache.max_accelerated_files=4000 ;哈希表中可存儲的腳本文件數量上限
;opcache.max_wasted_percentage=5 ;浪費內存的上限,以百分比計
;opcache.use_cwd=1;附加改腳本的工作目錄,避免同名腳本沖突
opcache.validate_timestamps=1 ;每隔revalidate_freq 設定的秒數 檢查腳本是否更新
opcache.revalidate_freq=60 ;
;opcache.revalidate_path=0 ;如果禁用此選項,在同一個 include_path 已存在的緩存文件會被重用
;opcache.save_comments=1 ;禁用后將也不會加載注釋內容
opcache.fast_shutdown=1 ;一次釋放全部請求變量的內存
opcache.enable_file_override=0 ; 如果啟用,則在調用函數file_exists(), is_file() 以及 is_readable() 的時候, 都會檢查操作碼緩存
;opcache.optimization_level=0xffffffff ;控制優化級別的二進制位掩碼。
;opcache.inherited_hack=1 ;PHP 5.3之前做的優化
;opcache.dups_fix=0 ;僅作為針對 “不可重定義類”錯誤的一種解決方案。
;opcache.blacklist_filename="" ;黑名單文件為文本文件,包含了不進行預編譯優化的文件名
;opcache.max_file_size=0 ;以字節為單位的緩存的文件大小上限
;opcache.consistency_checks=0 ;如果是非 0 值,OPcache 將會每隔 N 次請求檢查緩存校驗和
opcache.force_restart_timeout=180 ; 如果緩存處於非激活狀態,等待多少秒之后計划重啟。
;opcache.error_log="" ;OPcache模塊的錯誤日志文件
;opcache.log_verbosity_level=1 ;OPcache模塊的日志級別。致命(0)錯誤(1) 警告(2)信息(3)調試(4)
;opcache.preferred_memory_model="" ;OPcache 首選的內存模塊。可選值包括: mmap,shm, posix 以及 win32。
;opcache.protect_memory=0 ;保護共享內存,以避免執行腳本時發生非預期的寫入。 僅用於內部調試。
;opcache.mmap_base=null ;在Windows 平台上共享內存段的基地址

運行結果

用Opcache Control Panel 查看執行情況

ocp.php





 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM