PHP中的OPcache如何擴展-創(chuàng)新互聯(lián)

PHP中的OPcache 如何擴展?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

公司主營業(yè)務(wù):成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)推出景洪免費做網(wǎng)站回饋大家。

OPcache 通過將 PHP 腳本預(yù)編譯的字節(jié)碼存儲到共享內(nèi)存中來提升 PHP 的性能, 存儲預(yù)編譯字節(jié)碼的好處就是 省去了每次加載和解析 PHP 腳本的開銷。PHP 5.5 之后的版本都是默認綁定該擴展的,之前的 PHP 5.2,5.3 和 5.4 版本可以使用 ? PECL 擴展中的 OPcache 庫。

配置項解釋

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 :用來存儲預(yù)留字符串的內(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 會導(dǎo)致針對每個請求, 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手冊。

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 或不填,那么只有當腳本的修改時間 比對應(yīng)字節(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)存是一種在相同機器中的應(yīng)用程序之間交換數(shù)據(jù)的有效方式。內(nèi)存對于程序的執(zhí)行效率要高于磁盤I/O,所以合理的使用內(nèi)存可以提升程序的效率。它的應(yīng)用場景有web請求、數(shù)據(jù)庫查詢、模板引擎緩存、以及當前文章里提到的 OPcache 對于 PHP 的編譯緩存。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

本文名稱:PHP中的OPcache如何擴展-創(chuàng)新互聯(lián)
URL分享:http://www.muchs.cn/article42/diephc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)網(wǎng)站收錄、用戶體驗手機網(wǎng)站建設(shè)、微信公眾號

廣告

聲明:本網(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)

網(wǎng)站托管運營