ZendOptimizer

ZendOptimizer

Zend Optimizer指的是用優化代碼的方法來提高php應用程序的執行速度。實現的原理是對那些在被最終執行之前由運行編譯器(Run-Time Compiler)產生的代碼進行優化。

簡單介紹


一般情況下,執行使用Zend Optimizer的PHP程序比不使用的要快40%到100%。這意味著網站的訪問者可以更快的瀏覽網頁,從而完成更多的事務,創造更好的客戶滿意度。
更快的反應同時也意味著可以節省硬體投資,並增強網站所提供的服務。所以,使用Zend Optimizer,就等於提高了電子商務的盈利能力。Zend Optimizer能給PHP用戶帶來很多益處,特別是那些運營網站的人。快速運行PHP程序可以顯著降低伺服器的CPU負載,並可以減少一半的反應時間,也就是從訪問者點擊鏈接到伺服器開始讀取頁面之間的時間。
用優化代碼的方法來提高PHP v5.1應用程序的執行速度,執行使用Zend Optimizer的PHP程序比不使用的要快40%到100%,意味著網站的訪問者可以更快的瀏覽網頁,從而完成更多的事務,創造更好的客戶滿意度。

簡介


優化能提高你的盈利能力
一般情況下,執行使用ZO的php程序比不使用的要快40%到100%。這意味著網站的訪問者可以更快的瀏覽網頁,從而完成更多的事務,創造更好的客戶滿意度。更快的反應同時也意味著可以節省硬體投資,並增強網站所提供的服務。所以,使用ZO,就等於提高了電子商務的盈利能力。

為什麼要用ZO,難道PHP4還不夠快嗎?


的確,用於PHP4的標準運行編譯器已經夠快了--相同情況下比PHP3要快2-10倍。但使用了ZO的PHP程序的執行速度還會加快40%到100%。

ZO在PHP4軟體安裝的什麼位置?


ZO位於PHP4的ZEND引擎中,介於運行編譯器和最終執行器之間。

ZO的最終發布版本要付費嗎?


不要。ZO的最終版本將繼續作為免費軟體來發布。ZEND技術公司不打算對任何ZO版本收費!

怎樣獲得及安裝 Zend Optimizer


請訪問 擴展閱讀的第二個官方鏈接 下載 Zend Optimizer的最新版本。

UNIX

編譯PHP,不要加調試選項-否則ZO不會工作:在配置是加上--disable-debug選項
複製ZendOptimizerso文件到你的機器,通常放在:/usr/local/Zend/lib下
在php.ini文件中加入如下兩行,不要包含任何空格:
zend_optimizer.optimization_level=7
zend_extension="/usr/local/Zend/lib/ZendOptimizerso"
重新啟動Apache伺服器

WINDOWS

1、運行安裝文件,首先提示你選擇安裝目錄,選擇一個你喜歡的目錄,單擊“Next”。
2、安裝嚮導會要求你選擇當前使用的WEB伺服器(Apache、IIS或其它),選擇好伺服器后單擊“Next”
3、安裝嚮導提示您確認php.ini的位置(默認是C:\WINDOWS\)單擊“Next”,提示“備份php.ini到C:\WINDOWS\php.ini-Optimizer-bak,當卸載該軟體時可以恢復到原始的php.ini)單擊“Next”。
4、安裝嚮導提示“為了繼續安裝程序需要重新啟動IIS服務)單擊“是”,安裝程序開始重新啟動IIS服務,然後安裝程序會提示“IIS服務順利重新啟動了”單擊“確定”,再單擊“finish”完成安裝。
5、安裝完畢后程序會自動根據你的選擇來修改php.ini幫助你啟動這個引擎。下面我們來介紹Zend Optimizer的配置選項,幫助你最大化自定義合理的配置。
[Zend]
zend_optimizer.optimization_level=15
zend_extension_ts="C:\Program Files\Zend\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts="C:\Program Files\Zend\lib\Optimizer-2.5.5"
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
[Zend]
zend_optimizer.optimization_level=1023
zend_optimizer.encoder_loader=0
zend_extension_ts="C:\Program Files\Zend\lib\ZendOptimizer.dll"
(網上資料中所看到的內容,也許是版本不同造成的內容有差異)
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
現在我們來介紹上邊這些配置文件中相關內容的含義:
zend_optimizer.optimization_level 《== 優化程度,這裡定義啟動多少個優化過程。
zend_optimizer.encoder_loader 《== 是否允許處理由Zend Encoder加密的PHP文件。
zend_extension_ts 《== 優化器所在目錄。
zend_extension_manager.optimizer_ts 《== 優化器管理所在目錄。

優化過程


zend_optimizer.optimization_level 詳細解釋
這裡最為重點的部分,仔細看!Zend Opt總共有10個優化過程,從理論上說開的越多性能越好。當然,理論和實際永遠都存在著差距。優化過程開啟的越多對性能消耗相對也越大,Zend Opt的10個優化過程並不相同也就是說效果不是平均的。Zend公司定義的最高值(High模式)為15,這裡15指的是開啟1-4號優化過程。當然,很多朋友並不滿足於此,畢竟最高也只開啟4個優化過程連總數的一半都沒有。各個優化過程的對應的數字代碼(值)如下:
不使用 0 <= 如果這樣不如不裝,還能節約點內存說!
優化過程1(PASS1) 1
優化過程2(PASS2) 2
優化過程3(PASS3) 4
優化過程4(PASS4) 8
優化過程5(PASS5) 16
優化過程6(PASS6) 32
優化過程7(PASS7) 64
優化過程8(PASS8) 128
優化過程9(PASS9) 256
優化過程10(PASS10) 512
以何種方式開啟優化過程是通過這些數字代碼(值)相加所得的和作為此參數的參數值來控制的。如我的配置文件中zend_optimizer.optimization_level = 1023 ,這裡的1023是優化過程1到優化過程10全部數字代碼(值)相加得到的和,表示開啟全部10個優化過程。剛才所提到的Zend公司定義的High模式值為15,15表示同時開啟優化過程1-4。
加密代碼支持 zend_optimizer.encoder_loader 詳細解釋
對於這個參數,我想如果沒有看過Zend Opt FAQ文檔的朋友大多數並不知道。這個參數用來告訴Zend Opt是否去支持被Zend Encoder加密過的代碼。默認情況下Zend Opt將支持加密過的代碼。如果不使用被加密過的代碼我推薦你關閉此選項。這個功能牽扯到解包反碼的過程,會導致系統負荷的加重。我的朋友已經開發完畢相應的反編譯工具,預計春節之後推出。
這個參數的值只有兩個 0 關閉, 1 開啟。默認為1,推薦設置為0。
模塊定位 zend_extension_ts 、zend_extension_manager.optimizer_ts無需解釋,這些參數就是Zend Optimizer相關模塊在硬碟上的安裝路徑。
如何獲知Zend Optimizer是否在運行?
答案很簡單,只要用PHP的函數phpinfo()來檢測便知,如下所示: