首頁 >後端開發 >php教程 >PHP 的Opcache加速的使用方法詳解

PHP 的Opcache加速的使用方法詳解

jacklove
jacklove原創
2018-07-04 17:45:171706瀏覽

這篇文章主要介紹了PHP 的Opcache加速的使用方法,小編覺得蠻不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

本文介紹了PHP 的Opcache加速的使用方法,具體如下,分享給大家:

##介紹

PHP 5.5 版本以上的,可以使用PHP自帶的opcache開啟效能加速(預設是關閉的)。對於PHP 5.5以下版本的,需要使用APC加速

Opcache是​​一種透過將解析的PHP腳本預編譯的字節碼存放在共享記憶體中來避免每次載入和解析PHP腳本的開銷,解析器可以直接從共享記憶體讀取已經快取的字節碼,從而大大提高PHP的執行效率。

設定

在PHP 5.5.0及後續版本中,PHP已經將Opcache功能以拓展程式庫形式內嵌在發布版本中了,預設未開啟Opcache加速,需要開發人員在php.ini中新增或解註解Opcache相關配置即可。對於先前的舊版,可以將Opcache作為PECL拓展程式庫進行安裝與設定

php.ini:

[opcache]

# 启动操作码缓存
opcache.enable=1

#针对支持CLI版本PHP启动操作码缓存 一般被用来测试和调试
opcache.enable_cli=1

# 共享内存大小,单位为MB
opcache.memory_consumption=128

#存储临时字符串缓存大小,单位为MB,PHP5.3.0以前会忽略此项配置
opcache.interned_strings_buffer=8

#缓存文件数最大限制,命中率不到100%,可以试着提高这个值
opcache.max_accelerated_files=4000

#一定时间内检查文件的修改时间, 这里设置检查的时间周期, 默认为 2, 单位为秒
opcache.revalidate_freq=60

#开启快速停止续发事件,依赖于Zend引擎的内存管理模块,一次释放全部请求变量的内存,而不是依次释放内存块
opcache.fast_shutdown=1

#启用检查 PHP 脚本存在性和可读性的功能,无论文件是否已经被缓存,都会检查操作码缓存,可以提升性能。 但是如果禁用了 opcache.validate_timestamps选项, 可能存在返回过时数据的风险。
opcache.enable_file_override=1

Opcache注意事項

1、使用Opcache就沒必要使用apc 和Xcache加速;

因為PHP 5.5.0及後續版本已經內嵌對Opcache的支持,所以PHP意識到其重要性,相對於Xcache等第三方的PHP優化器來說,使用Opcache會是更好的選擇。另外,兩者同時存在的話,會使Opcache的快取命中數大大降低,而且增加不必要的開銷。

2、不建議在開發過程中開啟Opcache

開啟了Opcache之後,開發人員修改的內容不會立即顯示和生效,因為受到opcache.revalidate_freq=60的影響,所以建議在開發測試後,測試效能時再行開啟測試,當然,生產環境一直都要開啟Opcache。

3、不建議將Opcache指標設定太大

Opcache各項指標配置大小或是否開啟,需結合專案實際狀況需求及Opcache官方建議的配置,專案的實際狀況分析,可結合上面第四部分的可視化快取資訊分析調整。

4、不建議長期使用舊版的Opcache

建議及時關注Opcache官網動態,即時了解其的bugs修復,功能優化及新增功能,以便更好的將其應用在自己的專案中。

5、不建議在生產環境中,將上面介紹的開源專案放入Web服務根目錄

原因很簡單,因為這個開源專案並未做存取的限制和安全處理,也就是說凡是可以訪問外網的用戶,只要知道了訪問地址就可以直接訪問,所以不安全。一般下,這個開源工具只是幫助視覺化分析PHP的效能,通常在開發調試階段使用。如果就是想在生產環境開啟使用,那就必須做好安全限制工作。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持php中文網。

您可能感興趣的文章:

利用Laravel產生Gravatar頭像位址的方法

詳談PHP中public,private,protected,abstract等關鍵字的相關用法

#PHP讓陣列中有相同值的組成新的陣列實例講解

#

以上是PHP 的Opcache加速的使用方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn