精華區beta PHP 關於我們 聯絡資訊
既然板主提到了關於 PHP 加速器的議題, 在這邊也順便分享一下我的心得、以及一些疑問, 希望各位前輩能夠一起討論。 首先是,關於各個不同加速器的效果究竟如何?各有什麼優缺點? 先提供一篇英文文章給大家參考:Benchmarking PHP accelerators http://www.ipersec.com/index.php?q=en/bench_ea_vs_apc 文中分別比較了 APC、eAccelerator 以及 ZEND 三種不同的加速器。 文中認為,eAccelerator 與 ZEND 的表現結果差不多, 但是掛著 beta 字樣的 eAccelerator 似乎比較不是那麼的穩定。 (這篇文章應該是寫於 eAccelerator 0.9.5 尚未推出的時候, 目前穩定度如何,尚待相關資料來佐證。) 至於 APC,是由 PHP 的核心發展成員所開發,並計劃內建於 PHP6。 接下來第二段提到了測試的方法,用了三個不同的 script, 分別測試不同加速器的性能。 實驗開始前,先進行暖機動作,使伺服器能夠馬上開始進行負載。 並且事先執行一次 script,確保 cache 工作已經完成。 接著分別用 ab2 指令進行三次測試,紀錄其效能。 結果出爐,簡單說明一下結論: 1. 越複雜的程式,可以獲得越好的加速結果 2. 當你 include 一堆檔案的時候,更顯出加速器的重要性 3. 如果程式牽涉到磁碟或資料庫的讀取,那麼加速器的作用將不明顯 再來講第三個測試項目,測試的是 cache update 的時間間隔。 我們知道這些加速器的原理,都是先將程式編譯後 cache 起來,需要時可以直接執行。 但是對於一個更新較為頻繁的程式來說,這樣的機制卻可能造成各種無法預期的錯誤。 測試的結果,發現 eAccelerator 在這一項中大為領先 APC! 最後,該文的結論如下: 1. 如果你肯付錢、或是你需要技術支援,請選擇 Zend (不過個人用戶單純使用 Zend Optimizer 應該是不用錢吧? 至少我可以輕易在官網下載到) 2. 如果不符合前述條件,那麼 eAccelerator 是個不錯的選擇 3. 沒有所謂最好的加速器,選擇加速器的唯一方法,就是實際安裝並測試之 好了,稍微分享完該文的觀點之後,接下來是我的一點小小疑問… 首先是,eAccelerator 似乎沒有現成 for win32 的版本, 雖然 source code 內附編譯的方法,不過我還是弄不出來。 內附的編譯方法只提到要用到 Visual Studio, 但微軟官方目前只有 Visual Studio Express 2005 可供下載, 並且其實那只是數種不同開發環境的總稱而已, 而不是真有 Visual Studio 這套編譯器。 我隨便挑了一個 Visual C++ 2005 Express Edition 來測試, 照他的方法弄了半天,還是編譯不出個結果來, 不知道有沒有人能夠指導一下到底該怎麼做? 接著我還想知道,Zend 到底有沒有內建在 PHP 當中? 我以 PHP 5.1.6 為例,測試 phpinfo() 輸出的結果發現, 如果有掛上 Zend Optimizer,會出現如下資訊: This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies with Zend Extension Manager v1.0.10, Copyright (c) 2003-2006, by Zend Technologies with Zend Optimizer v3.0.2, Copyright (c) 1998-2006, by Zend Technologies 而如果沒掛 Zend Optimizer,則只有: This program makes use of the Zend Scripting Language Engine: Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies 我知道所謂的 Zend Extension Manager, 應該是將不同版本的 PHP 與相應的 ZendOptimizer.dll 對應起來的機制。 而所謂的 Zend Engine 與 Zend Optimizer 有什麼不一樣呢? 最後想知道的是,上面提到的文章中,測試的方法我想已經相當完善了, 但我還想知道,他使用的三個 script 是不是具有足夠的代表性? 有沒有更好的測試方式?或是有沒有遺漏掉什麼細節? 以上一點小小的心得與問題,盼大家能夠不吝發表高見。 -- ╭─我的網站────────╮ │http://www.chweng.idv.tw/ │ │ 我的相簿、我的部落格 │ ╰─────────────╯ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.162.108.110
ileadu:我之前也照eAccelerator的方法 去微軟下載VC++Express來用 12/29 21:35
ileadu:弄不出來… 怎麼沒來個非官方,別人已經compile好的檔案呢ꄠ 12/29 21:36
EAFV:??可是我現在有一台主機就是WinXP掛eAccelerator的耶? 12/29 21:51