Optimizer+ 是 Zend 開發的閉源但可以免費使用的 PHP 優化加速組件,是第一個也是最快的 opcode 緩存工具。現在,Zend 科技公司將 Optimizer+ 在 PHP License 下開源成為 Zend Opcache。
Zend OPcache 通過 opcode 緩存和優化提供更快的 PHP 執行過程。它將預編譯的腳本文件存儲在共享內存中供以後使用,從而避免了從磁盤讀取代碼並進行編譯的時間消耗。同時,它還應用了一些代碼優化模式,使得代碼執行更快。
當解釋器完成對腳本代碼的分析後,便將它們生成可以直接運行的中間代碼,也稱為操作碼(Operate Code,opcode)。Opcode cache 的目地是避免重復編譯,減少 CPU 和內存開銷。如果動態內容的性能瓶頸不在於 CPU 和內存,而在於 I/O 操作,比如數據庫查詢帶來的磁盤 I/O 開銷,那麼 opcode cache 的性能提升是非常有限的。但是既然 opcode cache 能帶來 CPU 和內存開銷的降低,這總歸是好事 —— 本著環保的態度,也應該盡量減少消耗不是? :D
現代操作碼緩存器(Optimizer+,APC2.0+,其他)使用共享內存進行存儲,並且可以直接從中執行文件,而不用在執行前“反序列化”代碼。這將帶來顯著的性能加速,通常降低了整體服務器的內存消耗,而且很少有缺點。
Optimizer+ 於 2013年3月中旬改名為 Opcache。
根據 PHP wiki 上的討論,Zend Opcache 即將整合到 php 5.5 中。作為 APC 的競爭對手,新生的 Zend Opcache 很有可能取代 APC 的位置,雖然 OptimizerPlus 沒有象 APC 那樣的 user cache 功能。
現在已經可以使用 Zend Opcache 替代 APC 作為 PHP 優化加速工具了。目前的 Zend Opcode 兼容 PHP 5.2.*、5.3.*、5.4.* 和 PHP-5.5 開發版。不過,將來會取消對 PHP 5.2 的支持。
注意:Zend Opcache 與 eaccelerator 相沖突。要安裝 Zend Opcache,可能需要先卸載 eaccelerator —— 如果你用了這個加速模塊的話。
Zend Opcache 的源代碼托管在 github 上,目前還是叫做 ZendOptimizerPlus。
安裝步驟詳見其 README 文件。
注意:
順便說一句,從源碼編譯安裝時需要用到 php-devel。README 中快速安裝一節的開頭就用到,
$PHP_DIR/bin/phpize
如果不清楚 phpize 的路徑,可以,
whereis phpize
README 文件中也有相應的推薦優化設置。
我不喜歡從源碼編譯安裝程序,一個是水平有限,一個就是怕麻煩。下面介紹從 EPEL 安裝源安裝 Zend Opcache,以 CentOS 上的操作為例,基於我的 VPS 的配置。
EPEL 社區已經提供了 Zend Opcache 的安裝包,可以直接 yum 安裝。當然,前提是已經配置使用了 EPEL 的安裝源。如果沒有,可以參考這裡。
提醒一下,REMI 安裝源上的 PHP 已經是 5.4 版本了。鑒於有人測試說 WordPress 在 PHP 5.4 上的性能要優於在 PHP 5.3 上的性能(10% faster and lower ram consuming),順便升級一下 PHP 也不是什麼壞事。
操作步驟:
查詢一下看看是否正確啟動了:
php -v
輸出結果類似於:
PHP 5.4.14 (cli) (built: Apr 11 2013 11:04:35) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies with Zend OPcache v7.0.1, Copyright (c) 1999-2013, by Zend Technologies
原文轉載於:http://cnzhx.net/blog/zendopcache-accelerate-php/ 感謝原著