摘要:一般執(zhí)行過程是先檢查文件的簽名或者修改時(shí)間,以防文件有改動(dòng)。緩存通常都能夠大幅度地提升應(yīng)用程序的執(zhí)行速度。二有哪些緩存插件于年月中旬改名為,集成,其他的會(huì)不會(huì)消失三為什么使用緩存主要是為了減少重復(fù)編譯,從而減少和內(nèi)存的開銷。
一、什么是opcode緩存
當(dāng)一個(gè) PHP 文件被解釋執(zhí)行的時(shí)候,首先是被編譯成名為 opcode (CPU 專用的機(jī)器語(yǔ)言指令)的中間代碼,然后才被底層的虛擬機(jī)執(zhí)行。 如果PHP文件沒有被修改過,opcode 始終是一樣的。這就意味著編譯步驟白白浪費(fèi)了 CPU 的資源。
此時(shí) opcode 緩存就派上用場(chǎng)了。通過將 opcode 緩存在內(nèi)存中,它能防止冗余的編譯步驟,并且在下次調(diào)用執(zhí)行時(shí)得到重用。一般執(zhí)行過程是先檢查文件的簽名(signature)或者修改時(shí)間,以防文件有改動(dòng)。
Opcode cache的目地是避免重復(fù)編譯,減少CPU和內(nèi)存開銷。
opcode 緩存通常都能夠大幅度地提升應(yīng)用程序的執(zhí)行速度。PHP 5.5 以后的所有版本都內(nèi)置了一個(gè) opcode 緩存工具,叫做 Zend OPcache。 根據(jù)你所使用的 PHP 安裝包/發(fā)行版的不同,一般情況下是默認(rèn)開啟的,請(qǐng)查看 opcache.enable phpinfo() 和 phpinfo() 輸出的信息確認(rèn)是否已經(jīng)開啟。早期的版本也能通過 PECL 擴(kuò)展來(lái)安裝。
二、有哪些opcode緩存插件?Optimizer+(Optimizer+于2013年3月中旬改名為Opcache,PHP 5.5集成Opcache,其他的會(huì)不會(huì)消失?)、eAccelerator、xcache、APC …
三、為什么使用opcode緩存?主要是為了減少重復(fù)編譯,從而減少CPU和內(nèi)存的開銷。
參考鏈接:https://www.cnblogs.com/JohnA...
四、opcache插件安裝請(qǐng)參考:https://blog.jjonline.cn/linu...
五、劃重點(diǎn)opcode緩存主要是為了減小CPU內(nèi)存的開銷,下次面試的時(shí)候關(guān)于性能提升的點(diǎn),記得說opcache~
使用opcache有一個(gè)缺點(diǎn),就是更新了php代碼后可能不會(huì)馬上生效,因?yàn)閛pcache有個(gè)有效時(shí)間的設(shè)置,只有過期后才會(huì)重新生成opcode否則還會(huì)沿用原來(lái)的緩存的opcode,這里,提供三種思路解決這種問題:
(1)根據(jù)業(yè)務(wù)實(shí)際情況,合理設(shè)置opcache的過期時(shí)間,也就是opcache.revalidate_freq值 (2)自己寫一個(gè)php腳本,調(diào)用opcache_reset()函數(shù)重置所有opcache緩存字節(jié)碼,或者使用opcache_invalidate(PHPfileDir,true)重置指定php文件的緩存字節(jié)碼。 (3)最簡(jiǎn)單粗暴的方法,可立即生效的方式,就是直接重啟php-fpm(nginx fast-cgi模式)或apache(apache-handler模式)。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/31064.html
摘要:緩存之緩存什么是緩存當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼。同時(shí)它還提供一些接口用于開發(fā)人員將用戶數(shù)據(jù)駐留在內(nèi)存中,我們稱之為。 PHP緩存之Opcode緩存 什么是Opcode緩存? 當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼(Operate Code, Opcode)。Opcode cache的目的是...
摘要:緩存之緩存什么是緩存當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼。同時(shí)它還提供一些接口用于開發(fā)人員將用戶數(shù)據(jù)駐留在內(nèi)存中,我們稱之為。 PHP緩存之Opcode緩存 什么是Opcode緩存? 當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將他們聲稱可以直接運(yùn)行的中間代碼,也成為操作碼(Operate Code, Opcode)。Opcode cache的目的是...
摘要:一般執(zhí)行過程是先檢查文件的簽名或者修改時(shí)間,以防文件有改動(dòng)。緩存通常都能夠大幅度地提升應(yīng)用程序的執(zhí)行速度。二有哪些緩存插件于年月中旬改名為,集成,其他的會(huì)不會(huì)消失三為什么使用緩存主要是為了減少重復(fù)編譯,從而減少和內(nèi)存的開銷。 一、什么是opcode緩存 當(dāng)一個(gè) PHP 文件被解釋執(zhí)行的時(shí)候,首先是被編譯成名為 opcode (CPU 專用的機(jī)器語(yǔ)言指令)的中間代碼,然后才被底層的虛擬...
摘要:什么是當(dāng)解釋器完成對(duì)腳本代碼的分析后,便將它們生成可以直接運(yùn)行的中間代碼,也稱為操作碼,。的目地是避免重復(fù)編譯,減少和內(nèi)存開銷。這將帶來(lái)顯著的性能加速,通常特別是高流量和高并發(fā)量時(shí)降低了整體服務(wù)器的內(nèi)存消耗,而且很少有缺點(diǎn)。 一、個(gè)人實(shí)踐發(fā)現(xiàn)opcache 最近為了應(yīng)對(duì)雙十一期間高流量的沖擊,小編通過壓力測(cè)試去查找服務(wù)器性能瓶頸,發(fā)現(xiàn)100并發(fā)時(shí),QPS并不是很高,但CPU和內(nèi)存消耗特...
摘要:本文就改變性能分析的角度,并通過實(shí)例來(lái)分析出的性能方面需要注意和改進(jìn)的點(diǎn)。如下是作為解釋性語(yǔ)言的執(zhí)行過程。這里分別啟用和做實(shí)驗(yàn)。 編者按】此前,閱讀過了很多關(guān)于 PHP 性能分析的文章,不過寫的都是一條一條的規(guī)則,而且,這些規(guī)則并沒有上下文,也沒有明確的實(shí)驗(yàn)來(lái)體現(xiàn)出這些規(guī)則的優(yōu)勢(shì),同時(shí)討論的也側(cè)重于一些語(yǔ)法要點(diǎn)。本文就改變 PHP 性能分析的角度,并通過實(shí)例來(lái)分析出 PHP 的性能方面...
閱讀 1259·2021-09-01 10:30
閱讀 2140·2021-07-23 10:38
閱讀 912·2019-08-29 15:06
閱讀 3165·2019-08-29 13:53
閱讀 3287·2019-08-26 11:54
閱讀 1845·2019-08-26 11:38
閱讀 2383·2019-08-26 10:29
閱讀 3138·2019-08-23 18:15