Opcache 的前生是Optimizer+
,它是 Zend 開發的 PHP 優化加速組件。Optimizer+ 將 PHP 代碼預編譯生成的腳本文件Opcode
緩存在共享內存中供之後反覆使用,從而避免了從磁盤讀取代碼再次編譯的時間消耗。同時,它還應用了一些代碼優化模式,使得代碼執行更快。從而加速 PHP 的執行。php
正常的執行流程以下:nginx
開啓 Opcache 後的執行流程以下:緩存
php -v yum list *opcache* yum -y install rh-php71-php-opcache.x86_64
kill -USR2 cat `/usr/local/php/var/run/php-fpm.pid` nginx -s reload
zend_extension=opcache.so [opcache] ;開啓opcache功能 opcache.enable=1 ;CLI環境下,開啓opcache功能 opcache.enable_cli=1 ;OPcache共享內存的大小,單位MB opcache.memory_consumption=128 ;字符串在進程間駐留科使用的內存大小,單位MB opcache.interned_strings_buffer=8 ;內存中能夠緩存的文件量。200-1000000之間 ;能夠使用「find . -type f -print | grep php | wc -l」統計文件數 opcache.max_accelerated_files=4000 ;緩存的過時時間,單位秒 opcache.revalidate_freq=60 ;開啓快速響應機制來調用代碼中的析構器,PHP 7.2.0 開始移除 opcache.fast_shutdown=1 ;開啓文件更新檢查,到達 revalidate_freq 時間以後會檢查文件變動並更新緩存,設爲0則永不檢查 opcache.validate_timestamps=1 ;開啓緩存二進制導出文件到外部文件,位置爲傳入的值 opcache.file_cache=/tmp
php -m 或 <?php phpinfo(); ?>
// 重置全部的opcache緩存。FPM模式下生成的緩存,在CLI下不能RESET。 var_dump(opcache_reset()); //bool(true)