OPcache 通過將 PHP 腳本預編譯的字節(jié)碼存儲到共享內(nèi)存中來提升 PHP 的性能, 存儲預編譯字節(jié)碼的好處就是 省去了每次加載和解析 PHP 腳本的開銷。PHP 5.5 之后的版本都是默認綁定該擴展的,之前的 PHP 5.2,5.3 和 5.4 版本可以使用 ? PECL 擴展中的 OPcache 庫。
游仙網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站設(shè)計等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。配置項解釋
opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1
該配置項是PHP手冊推薦,在 php.ini 中間進行設(shè)置,關(guān)于每個配置項的說明如下:
opcache.memory_consumption :OPcache 的共享內(nèi)存大小,以兆字節(jié)為單位。opcache.interned_strings_buffer :用來存儲預留字符串的內(nèi)存大小,以兆字節(jié)為單位。 PHP 5.3.0 之前的版本會忽略此配置指令。opcache.max_accelerated_files :OPcache 哈希表中可存儲的腳本文件數(shù)量上限。 真實的取值是在質(zhì)數(shù)集合 { 223, 463, 983, 1979, 3907, 7963, 16229, 32531, 65407, 130987 } 中找到的第一個大于等于設(shè)置值的質(zhì)數(shù)。 設(shè)置值取值范圍最小值是 200,值在 PHP 5.5.6 之前是 100000,PHP 5.5.6 及之后是 1000000。opcache.revalidate_freq :檢查腳本時間戳是否有更新的周期,以秒為單位。 設(shè)置為 0會導致針對每個請求, OPcache 都會檢查腳本更新。如果 opcache.validate_timestamps配置指令設(shè)置為禁用,那么此設(shè)置項將會被忽略。opcache.validate_timestamps : 如果啟用,那么 OPcache 會每隔 opcache.revalidate_freq設(shè)定的秒數(shù) 檢查腳本是否更新。 如果禁用此選項,你必須使用 opcache_reset() 或者 opcache_invalidate() 函數(shù)來手動重置 OPcache,也可以 通過重啟 Web 服務(wù)器來使文件系統(tǒng)更改生效。opcache.fast_shutdown :如果啟用,則會使用快速停止續(xù)發(fā)事件。 所謂快速停止續(xù)發(fā)事件是指依賴 Zend 引擎的內(nèi)存管理模塊 一次釋放全部請求變量的內(nèi)存,而不是依次釋放每一個已分配的內(nèi)存塊。從 PHP 7.2.0 開始,此配置指令被移除。 快速停止的續(xù)發(fā)事件的處理已經(jīng)集成到 PHP 中, 只要有可能,PHP 會自動處理這些續(xù)發(fā)事件。OPcache函數(shù)
OPcache提供了一些內(nèi)置函數(shù),用于控制字節(jié)碼的緩存狀態(tài),使用前提是需要開啟 OPcache 擴展。
opcache_compile_file :不需要運行即可編譯緩存PHP腳本,如果單獨使用參數(shù) FILE必填,FILE為腳本路徑,例如:opcache_compile_file('index.php')opcache_get_configuration :獲取 opcache 的當前所有配置信息opcache_get_status :獲取 opcache 的當前緩存信息,信息包含共享內(nèi)存空間是否滿載等opcache_invalidate :廢除腳本緩存,有兩個參數(shù),script (腳本路徑信息) 必填,force(boolean) 選填,如果 force 參數(shù)為 true 強制廢除緩存,如果為 false 或不填,那么只有當腳本的修改時間 比對應字節(jié)碼的時間更新,腳本的緩存才會失效。opcache_is_script_cached :檢查腳本是否在OPCache中緩存,參數(shù) FILE(文件路徑) 必填opcache_reset :充值所有 opcache 緩存,等待下一次執(zhí)行編譯開發(fā)注意事項
在本地開發(fā)環(huán)境中,建議關(guān)閉 OPcache 擴展,緩存可能會讓本地調(diào)試產(chǎn)生很多問題,減低開發(fā)效率。
關(guān)于共享內(nèi)存的知識擴展
共享內(nèi)存是一種在相同機器中的應用程序之間交換數(shù)據(jù)的有效方式。內(nèi)存對于程序的執(zhí)行效率要高于磁盤I/O,所以合理的使用內(nèi)存可以提升程序的效率。它的應用場景有web請求、數(shù)據(jù)庫查詢、模板引擎緩存、以及當前文章里提到的 OPcache 對于 PHP 的編譯緩存。
本文題目:詳解PHP中的OPcache擴展
文章出自:http://jinyejixie.com/article10/chdddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、虛擬主機、響應式網(wǎng)站、微信小程序、品牌網(wǎng)站設(shè)計、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)