說(shuō)明:
? ?網(wǎng)站訪(fǎng)問(wèn)速度并不僅僅是由緩存技術(shù)來(lái)決定的避消,而跟網(wǎng)絡(luò),硬件,架構(gòu)(數(shù)據(jù)庫(kù)岩喷,負(fù)載均衡等)都有關(guān)系恕沫,此處我們僅僅討論其中的代碼加載層。即opcache纱意,另外opcache第一次生成的時(shí)候也不會(huì)快和普通的加載方式一樣婶溯。
php加速原理(假定服務(wù)器軟件是apache):
a.? ?apache 接收 請(qǐng)求
b.? apache 將請(qǐng)求傳遞給mod_php? 模塊
c.? ?mod_php? 定位磁盤(pán)中的文件并加載到內(nèi)存中去
d.? ?編譯源碼生成 opcode? 樹(shù)
f.? ? mod_php? 執(zhí)行opcode 字節(jié)樹(shù)(此處就是加速的根本原因)
opcache 設(shè)置參數(shù)
;加載opcache 模塊
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/opcache.so?
;開(kāi)啟? opcache模塊
opcache.enable=1?
;開(kāi)啟命令模式妇穴,針對(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? ? ??
;用來(lái)存儲(chǔ)預(yù)留字符串的內(nèi)存大小腾它,以兆字節(jié)為單位 ,這個(gè)地方其實(shí)php使用了一種叫做字符串駐留的技術(shù)來(lái)改善性能跑筝。
例如: 代碼中有1000次字符串‘hello’,在php內(nèi)部只會(huì)在第一次使用這個(gè)字符串的時(shí)候分配一個(gè)不可變的內(nèi)存區(qū)域來(lái)存儲(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ì)比開(kāi)啟opcache加速和沒(méi)有開(kāi)啟opcache的區(qū)別
1.開(kāi)啟opcache加速是的測(cè)試數(shù)據(jù)
2.關(guān)閉opcache的測(cè)試數(shù)據(jù)
對(duì)比結(jié)果:
1.首先我們看ab測(cè)試的數(shù)據(jù)中可以看出,開(kāi)啟了opcache后 酬凳,網(wǎng)站的吞吐量是沒(méi)有開(kāi)啟的33倍左右
接下來(lái)我們對(duì)比另外一組數(shù)據(jù)------瀏覽器的加載時(shí)間結(jié)果
開(kāi)啟了opcache的訪(fǎng)問(wèn)速度和沒(méi)有開(kāi)啟的訪(fǎng)問(wèn)速度差? ?260-235 = 25ms .? ?此時(shí)文檔的大小還只有? 6.1kb如果大一點(diǎn)的文檔惠况,那么相差的時(shí)間會(huì)更多