提升PHP執行速度全攻略(上)

來源:互聯網
上載者:User


PHP的優點之一是速度很快,對於一般的網站應用程式,可以說是已經足夠了。不過如果網站的訪問量很高、頻寬窄或者其它的因素令伺服器產生效能瓶頸的時候,你可能得想想其它的辦法來進一步提高PHP的速度了。這篇文章將從幾個方面介紹如何做到這一點,從而令使用者瀏覽的時候更加“爽”。

代碼最佳化

在這裡並不想再次告訴你如何寫更乾淨的代碼,這一點我想每個人都清楚,在需要速度的時候,你可能已經在PHP原始碼的最佳化上面做了不少的工作,這裡所提出的是,這個煩瑣的工作可以交由其它工具來完成。這就是Zend Optimizer,此程式可以從Zend Technologies的網站(http://www.zend.com/)免費得到。它的原理很簡單,通過檢測Zend引擎產生的中間代碼,並且最佳化它來得到更高的執行速度。我認為最佳化代碼是一項頗煩瑣的工作,而且最佳化後的代碼可能變得難以理解,尤其是當你放下該PHP程式一段時間後,突然間客戶要求你做一些修改時,可能你自己也不懂了;-)。因此我建議你在PHP的原始碼較為複雜的時候,用Zend Optimizer來做這個最佳化的工作,好處是它不會令你的代碼變得複雜難懂。

安裝Zend Optimizer是非常簡單的。只要根據你使用的平台,下載相關的先行編譯庫,並且在你的php.ini中加入兩行,重新啟動你的web伺服器就行了!

zend_optimizer.optimization_level=15zend_extension="/path/to/ZendOptimizer.so" zend_loader.enable=Off

你可能有點奇怪,不是說兩行嗎,怎麼變成三行了。不過第三行是可選的,看來禁止這個zend_loader將會令最佳化的速度更快,因此不妨在你的php.ini檔案中多加這一行。要注意的是:只有在你不使用Zend Encoder Runtime的時候,才可以禁止zend_loader,關於Zend Encoder Runtime,還會在下文提到。

要更快嗎?使用cache(緩衝)吧

如果你的PHP應用還需要更快的速度,下一個辦法是緩衝。要實現這一點,有幾種不同的方式。我自己就試用過Zend Cache(評測版本),APC和Afterburner Cache。

以上提到的都是“緩衝模組”。它們的原理都差不多,在php檔案被首次請求的時候,通過將你的PHP原始碼的中間代碼儲存在web伺服器的記憶體中,對於以後同樣的請求,都直接提供記憶體中的“編譯”版本。由於它可以令磁碟的訪問達到最小化,因此這個方法確實可以極大地提高PHP的效能。更為方便的是,當你的PHP原始碼修改時,緩衝的模組可以察覺到這些變化,並且重新載入一樣,因此你不必擔心客戶得到的是舊版本的程式。這些緩衝的模組確實不錯,但是我應該選用哪一種呢?下面分別介紹一下:

Zend Cache是Zend Technologies的一個商業化的產品(它也是免費為我們提供PHP引擎和Zend Optimizer的公司)。它確實不錯。在首次運行後,你可以明顯察覺到PHP的速度得到了很大的提高,伺服器的空閑資源也更多了。缺點是你要付費購買它,但就性價比來說,還是非常值得的。

Afterburner Cache是Bware Technologies(bwcache.bware.it)提供的免費緩衝模組。當前還只是beta版,它所做的工作看來與Zend Cache差不多,不過效能的提高就比不上Zend Cache,而且現有的版本不能和Zend Optimizer一起工作,不過它是免費的。

APC(Alternative PHP Cache)是由Community Connect(apc.communityconnect.com)提供的另一個免費模組。它的工作很穩定,速度也有不少的提高,要注意的是,我還沒有找到一個官方的測試資料,這些只是在我的應用程式上作測試,因此不能下一個結論。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.