負載品頸一般主要在以下四個方面:
1 資料庫
2 伺服器CPU
3 硬碟I/O
4 網路頻寬
除了這四個鬼東西。還有什麼值得我們優化的。 PHP真很強。今天就說下在PHP的腳本等級來調整PHP的效能。
如果你想在單一伺服器上提高PHP的效能。我們可以使用“編譯快取”。 編譯cache 不單能提高效能而且會隨著PHP程式的容量和程式碼複雜度的增加伺服器的效能也增加。什麼是編譯cache呢。等下告訴你。我們先說下PHP編譯腳本文件要做的兩步驟:
1 php引擎讀腳本文件,解釋腳本然後在ZEND引擎裡生成可執行的中間代碼
2 ZEND 第二次開始執行中間代碼
我們要注意。第一步是在每次PHP腳本檔案被要求的時候都要重複一次的東西。 而且這個過程,會因為腳本裡面又包含include()require() eval() 而遞歸重複執行第一步。可想而知消耗有多大了。特別PHP檔案很大的時候。所以為什麼建議寫PHP檔時候不贊成行數太多。
說到這裡大家就明白了。其實我們可以在第一步做點文章。如果我們把第一步解釋檔案那裡把解釋後的程式碼快取到共享記憶體裡面。如果有第二個請求這個腳本的時候就可以跳過第一步而直接進入第二步。因為第一步已經cache在記憶體裡面了。
我們看圖比較一下
先看下如果沒使用編譯cache 的情況
再來個使用了編譯cache 的情況
行了看看就懂了。是吧。有了編譯cache 少走了很多彎路。 特別是在你的程式碼裡有大量的 include 呀require 呀的時候特別有效。
現在介紹三個編譯cache:
1 The ionCube Accelerator 不開源的說。
2 TheZendAccelerator 要錢的羅。我窮呀
3 APC 這個我最喜歡因為不要錢。效果還挺好哦我們就說APC
安裝大概是這樣的。透過pear來安裝
#pear install apc
修改下php.ini 加上擴展
extension = /path/to/apc.so
OK就這麼簡單。但你再次運行PHP的時候。 這個APC就已經有作用了。編譯程式碼就cache 在了share 記憶體中了。那個爽呀。比女人幹女人還爽
如果是window 的找下這個裡面有這個擴充http://pecl4win.php.net/list.php
APC 安裝完了後我們還需要調整下APC 的各方面的參數。 這個當然按照你自己專案環境來調整了。
APC 有幾個參數。自己百度去。
完了。
還沒完呢。 請關注我的blog www.laoniphp.com