緩衝層層級的最佳化
xCache是把 PHP 作業碼緩衝到記憶體中的 PHP 擴充中,XCache 將避免代價高昂且不必要的花費來重新編譯相同的 PHP 代碼去交付一個頁面,這一點上和Accelerator有點相似,我一直認為他們的機理是一樣的,不過xCahce是開源產品[opensource].
Zend Accelerator 站在解析和執行的中間,當頁面第一次被請求時,Zend 引擎解析了它,而Accelerator 把解析的映象放入記憶體,然後執行並把資訊發送給瀏覽器。 好像也叫Zend Cache。
Memcache 精靈 (memcached) 是一種高效能分布式對象緩衝。memcached 的安裝位置介於應用程式與資料存放區之間,它將把對象儲存在 RAM 中。每次快取命中將替換到資料庫伺服器的一次往返,使應用程式運行得更快。非常適合訪問量大的網站使用。
APC 它對php opcode進行緩衝,而不是迫使php在每一次執行的時候都重新解釋每一個指令碼.
PHP執行代碼會經過如下4個步驟(確切的來說,應該是PHP的語言引擎Zend)
1. Scanning(Lexing) ,將PHP代碼轉換為語言片段(Tokens)
2. Parsing, 將Tokens轉換成簡單而有意義的運算式
3. Compilation, 將運算式編譯成Opocdes
4. Execution, 順次執行Opcodes,每次一條,從而實現PHP指令碼的功能。
題外話:現在有的Cache比如APC,可以使得PHP緩衝住Opcodes,這樣,每次有請求來臨的時候,就不需要重複執行前面3步,從而能大幅的提高PHP的執行速度。
最佳化代碼層級
Zend Optimizer就要對PHP 源碼作相應的調整,比如去掉一些PHP注釋,使得代碼更容易編譯。
編程時層級的最佳化
XDebug 是類似於軟體 x 光照片的內容:它將深入應用程式,揭露內部工作原理,並且揭示代碼如何度過其周期。擁有了 XDebug 度量之後 —— 而不是之前 —— 您可以最佳化代碼來調整演算法、減少瓶頸並減輕過多的記憶體使用量。