php7 opcache

說明:

? ?網(wǎng)站訪問速度并不僅僅是由緩存技術(shù)來決定的,而跟網(wǎng)絡(luò),硬件,架構(gòu)(數(shù)據(jù)庫,負(fù)載均衡等)都有關(guān)系,此處我們僅僅討論其中的代碼加載層。即opcache,另外opcache第一次生成的時(shí)候也不會(huì)快和普通的加載方式一樣。


php加速原理(假定服務(wù)器軟件是apache):

a.? ?apache 接收 請(qǐng)求

b.? apache 將請(qǐng)求傳遞給mod_php? 模塊

c.? ?mod_php? 定位磁盤中的文件并加載到內(nèi)存中去

d.? ?編譯源碼生成 opcode? 樹

f.? ? mod_php? 執(zhí)行opcode 字節(jié)樹(此處就是加速的根本原因)

opcache 設(shè)置參數(shù)

;加載opcache 模塊
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/opcache.so?

;開啟? opcache模塊
opcache.enable=1?

;開啟命令模式,針對(duì)php? cli運(yùn)行方式的時(shí)候有效
opcache.enable_cli=1

;如果緩存處于非激活狀態(tài),等待多少秒之后計(jì)劃重啟
opcache.force_restart_timeout=3600

;共享內(nèi)存大小,以兆字節(jié)為單位 ,設(shè)置為1M
opcache.memory_consumption=1024

;控制優(yōu)化級(jí)別的二進(jìn)制位掩碼
opcache.optimization_level=1? ? ??

;用來存儲(chǔ)預(yù)留字符串的內(nèi)存大小,以兆字節(jié)為單位 ,這個(gè)地方其實(shí)php使用了一種叫做字符串駐留的技術(shù)來改善性能。
例如: 代碼中有1000次字符串‘hello’,在php內(nèi)部只會(huì)在第一次使用這個(gè)字符串的時(shí)候分配一個(gè)不可變的內(nèi)存區(qū)域來存儲(chǔ)這個(gè)字符串。而其它999次都會(huì)直接使用這個(gè)內(nèi)存區(qū)域的字符串,這個(gè)可以很大程度上提高性能
opcache.interned_strings_buffer=8?

;OPcache 哈希表中可存儲(chǔ)的腳本文件數(shù)量上限。 真實(shí)的取值是在質(zhì)數(shù)集合?{ 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 }?中找到的第一個(gè)大于等于設(shè)置值的質(zhì)數(shù)。 設(shè)置值取值范圍最小值是 200,最大值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。 即,并不是有多少php文件就緩存多少文件的,緩存的文件數(shù)量是有限制的
opcache.max_accelerated_files=4096

;在指定周期中去檢查代碼是否有改變,有則重新生成opcode
opcache.revalidate_freq=60

;快速重啟,針對(duì)fpm啟動(dòng)模式有效
opcache.fast_shutdown=1

;是否保存注釋
opcache.save_comments=0

實(shí)例對(duì)比開啟opcache加速和沒有開啟opcache的區(qū)別

1.開啟opcache加速是的測(cè)試數(shù)據(jù)


2.關(guān)閉opcache的測(cè)試數(shù)據(jù)


對(duì)比結(jié)果:

1.首先我們看ab測(cè)試的數(shù)據(jù)中可以看出,開啟了opcache后 ,網(wǎng)站的吞吐量是沒有開啟的33倍左右

接下來我們對(duì)比另外一組數(shù)據(jù)------瀏覽器的加載時(shí)間結(jié)果

沒有開啟opcache



開啟了opcache??

開啟了opcache的訪問速度和沒有開啟的訪問速度差? ?260-235 = 25ms .? ?此時(shí)文檔的大小還只有? 6.1kb如果大一點(diǎn)的文檔,那么相差的時(shí)間會(huì)更多

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容