1. 程式人生 > >開啟opcache快取

開啟opcache快取

Zend OPcache通過opcode快取和優化提供更快的PHP執行過程。它將預編譯的指令碼檔案儲存在共享記憶體中供以後使用,從而避免了從磁碟讀取程式碼並進行編譯的時間消耗。同時,它還應用了一些程式碼優化模式,使得程式碼執行更快。(php >= 5.5)

php在安裝的時候一般都預設帶了這個擴充套件,一般情況下是不需要安裝的

wget http://pecl.php.net/get/zendopcache-7.0.2.tgz
tar zxvf zendopcache-7.0.2.tgz
cd zendopcache-7.0.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/

修改php.ini檔案

[Zend Opcache]
zend_extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/opcache.so
opcache.memory_consumption=64
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.force_restart_timeout=180
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

重啟php-fpm即可生效

配置說明

[opcache]
zend_extension = "G:/PHP/php-5.5.6-Win32-VC11-x64/ext/php_opcache.dll"
 
; Zend Optimizer + 的開關, 關閉時程式碼不再優化.
opcache.enable=1
 
; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=1
 
 
; Zend Optimizer + 共享記憶體的大小, 總共能夠儲存多少預編譯的 PHP 程式碼(單位:MB)
; 推薦 128
opcache.memory_consumption=64
 
; Zend Optimizer + 暫存池中字串的佔記憶體總量.(單位:MB)
; 推薦 8
opcache.interned_strings_buffer=4
 
 
; 最大快取的檔案數目 200  到 100000 之間
; 推薦 4000
opcache.max_accelerated_files=2000
 
; 記憶體“浪費”達到此值對應的百分比,就會發起一個重啟排程.
opcache.max_wasted_percentage=5
 
; 開啟這條指令, Zend Optimizer + 會自動將當前工作目錄的名字追加到指令碼鍵上,
; 以此消除同名檔案間的鍵值命名衝突.關閉這條指令會提升效能,
; 但是會對已存在的應用造成破壞.
opcache.use_cwd=0
 
 
; 開啟檔案時間戳驗證 
opcache.validate_timestamps=1
 
 
; 2s檢查一次檔案更新 注意:0是一直檢查不是關閉
; 推薦 60
opcache.revalidate_freq=2
 
; 允許或禁止在 include_path 中進行檔案搜尋的優化
;opcache.revalidate_path=0
 
 
; 是否儲存檔案/函式的註釋   如果apigen、Doctrine、 ZF2、 PHPUnit需要檔案註釋
; 推薦 0
opcache.save_comments=1
 
; 是否載入檔案/函式的註釋
;opcache.load_comments=1
 
 
; 開啟快速關閉, 開啟這個在PHP Request Shutdown的時候會收記憶體的速度會提高
; 推薦 1
opcache.fast_shutdown=1
 
;允許覆蓋檔案存在(file_exists等)的優化特性。
;opcache.enable_file_override=0
 
 
; 定義啟動多少個優化過程
;opcache.optimization_level=0xffffffff
 
 
; 啟用此Hack可以暫時性的解決”can’t redeclare class”錯誤.
;opcache.inherited_hack=1
 
; 啟用此Hack可以暫時性的解決”can’t redeclare class”錯誤.
;opcache.dups_fix=0
 
; 設定不快取的黑名單
; 不快取指定目錄下cache_開頭的PHP檔案. /png/www/example.com/public_html/cache/cache_ 
;opcache.blacklist_filename=
 
 
; 通過檔案大小屏除大檔案的快取.預設情況下所有的檔案都會被快取.
;opcache.max_file_size=0
 
; 每 N 次請求檢查一次快取校驗.預設值0表示檢查被禁用了.
; 由於計算校驗值有損效能,這個指令應當緊緊在開發除錯的時候開啟.
;opcache.consistency_checks=0
 
; 從快取不被訪問後,等待多久後(單位為秒)排程重啟
;opcache.force_restart_timeout=180
 
; 錯誤日誌檔名.留空表示使用標準錯誤輸出(stderr).
;opcache.error_log=
 
 
; 將錯誤資訊寫入到伺服器(Apache等)日誌
;opcache.log_verbosity_level=1
 
; 記憶體共享的首選後臺.留空則是讓系統選擇.
;opcache.preferred_memory_model=
 
; 防止共享記憶體在指令碼執行期間被意外寫入, 僅用於內部除錯.
;opcache.protect_memory=0



https://www.jianshu.com/p/9a40cbbebeb5