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