PHP7 開啟Zend Opcache


作為PHP這10年來最大的版本與性能升級,PHP7在多次的測試中都表現出很誇張的性能提升,然而,為了讓它能發揮出最大的性能,需要手動開啟PHP自帶的opcache使其性能加速(默認是關閉的)。對於PHP 5.5以下版本的,需要使用APC加速,這里不說明,可以自行上網搜索PHP APC加速的方法。

 

PHP 5.3.X   以前版本 為  Zend Optimizer
PHP 5.3.X   之后 更名為  Zend Guard Loader
PHP 5.5.X  后為 Zend Opcache

 

什么是zend opcache?

Zend OPcache通過 opcode 緩存和優化提供更快的 PHP 執行過程。它將預編譯的腳本文件存儲在共享內存中供以后使用,從而避免了從磁盤讀取代碼並進行編譯的時間消耗。同時,它還應用了一些代碼優化模式,使得代碼執行更快。

當解釋器完成對腳本代碼的分析后,便將它們生成可以直接運行的中間代碼,也稱為操作碼(Operate Code,opcode)。Opcode cache 的目地是避免重復編譯,減少 CPU 和內存開銷。如果動態內容的性能瓶頸不在於 CPU 和內存,而在於 I/O 操作,比如數據庫查詢帶來的磁盤 I/O 開銷,那么 opcode cache 的性能提升是非常有限的。但是既然 opcode cache 能帶來 CPU 和內存開銷的降低,這總歸是好事!

現代操作碼緩存器(Optimizer+,APC2.0+,其他)使用共享內存進行存儲,並且可以直接從中執行文件,而不用在執行前“反序列化”代碼。這將帶來顯着的性能加速,通常降低了整體服務器的內存消耗,而且很少有缺點。

開啟opcahe

修改php.ini 搜索 : “[opcache]”
增加以下代碼(或者在原有基礎上改一下):

  1. zend_extension = php_opcache.dll
  2. opcache.enable=1
  3. opcache.enable_cli=1
  4. opcache.memory_consumption=128
  5. opcache.max_accelerated_files=2000

幾個重要參數的作用說明:

  1. opcache.enable=1 //開啟opcache
  2. opcache.enable_cli=1 //是否在CLI(即命令行時)啟用opcache
  3. opcache.memory_consumption=128 //共享內存的大下 可以根據項目大小和服務器配置自行調整
  4. opcache.max_accelerated_files=2000 //最大緩存文件個數

設置好后,重啟apache即可。打開phpinfo觀察變化:
證明 zend opcache 已經成功開啟。經過測試效果明顯(因為減少了編譯次數也減少了磁盤io開銷)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM