(一)簡介
本文嘗試對PHP程式加速的各個方面進行探索,包括必要性以及從不同角度採取的具體措施。希望有助於讀者瞭解PHP程式加速,並應用於實際。
(二)是否需要加速?
這個問題聽起來有點愚蠢。在這個時代,很少有人會懷疑時間是最寶貴的財富,尤其是在商業市場上。程式執行越快,使用者就節約越多的時間,這樣你的程式就可以用更少的時間和伺服器資源為使用者服務,從而產生更多效益。
我想對於大部份人(包括我自己)來說,很多WEB項目都是在很緊張的時間裡完成的,通常沒有經過縝密的思考和嚴格的測試。當開始一個新的WEB項目。很多人都在構建那種“快而亂”的應用,缺乏必要的時間來調整和改良代碼,這時最佳化和加速就是我們必須採取的措施。
然而需要特別指出的是,並不是所有程式都需要加速。
最佳化已完成的代碼是很浪費時間的,最好的方法是在寫代碼的時候就注意到效率,然後完成項目後只最佳化確實需要最佳化的那部份。一般一個程式只會有少數幾個影響速度的瓶頸,將它們找出來並解決掉,程式就可以很好地運行。另外,當遇到執行效率低下的情況,首先要用大局的眼光來找出影響效率的主要因素,而不要拘泥於細節—例如資料量過大,伺服器頻寬不夠,或硬體設定過低,在這樣的情況下,最佳化代碼於事無補。
另外,在沒有發現程式有明顯的執行緩慢的跡象時,就不要太吹毛求疵,為了改進一些非常細節的代碼而浪費時間。用這些時間,你可以完成另一個項目或為原來的項目完成一個擴充功能。當然你可以笑話我不夠負責,沒有把工作做得盡善盡好,我也可以說你是完美主義者:-)
綜上,在你決定為你的PHP程式提速之前,問問自己是否有必要。
(三)如何加速?
要回答“如何加速”這個問題前,需要先回答以下兩個小問題:
1. 你的程式慢在哪一部份?
2. PHP可以從哪幾個方面考慮加速?
第一個小問題顯然我無法給你答案,但我建議你用“測試指令碼執行速度”的方法來解決。只有找出限制速度的瓶頸,才能考慮如何去解決。
第二個小問題我大概的答案是:代碼最佳化,壓縮輸出,內容緩衝輸出,函數緩衝輸出,加速/緩衝工具軟體。如果你知道更多請告訴我:-)
下面我們來詳細地研究一下這幾個方面的相關技術。當然實際上每個方面都有無數的細節可以討論,下面的內容難免會有片面的地方,歡迎補充。