標籤:router master 個數 匯總 src 邏輯 健全 朋友 時間
身邊有朋友在用yaf架構,討論的也聲音也比較多,今天沒事看鳥哥的部落格,看到一篇現在PHP主流的幾個架構效能對比,比較有意思,給大家分享一下!
Yaf是用PHP擴充的形式寫的一個PHP架構,也就是以C語言的編寫,效能上要比PHP代碼寫的架構要快一個數量級。在執行效率方面,這個架構很可能會是最高的,因為它的作者就是惠新宸
Case
測試 MVC 中的 Router -> Controller -> Viewer, 輸出 "Hello World" 簡單頁面,測試 MVC 在理想環境、簡單邏輯、架構空載下的效能指標。
3 項指標
1) 在 index.php 中使用 microtime() 和 memory_get_usage() 粗略取得執行時間,記憶體佔用情況
2) 使用 Facebook XHProf 擴充取得詳細的資源佔用情況,代碼執行的 function map
3) 並發測試
硬體環境:
CPU: Intel Core i5 750 (2.67GHz x4)
RAM: 4GB
軟體環境:
Debian 6.0.2 x86_64 (2.6.32-5-amd64)
apache 2.2.16
mpm-prefork
mod-php5
php 5.3.6
php-apc 3.1.3p1 (全域統一開啟APC支援)
測試的架構清單:
* zf: Zend Framework
Site: http://framework.zend.com
Ver: 1.11.7
* ci: CodeIgniter
Site: http://codeigniter.com/
Ver: 2.0.2
* yii: Yii Framework
Site: http://www.yiiframework.com/
Ver: 1.1.8
* yaf: Yet Another Framework in PHP Extension
Site: http://code.google.com/p/yafphp/
Ver: 2.0.1
* micromvc: MicroMVC
Site: http://www.micromvc.com/
Ver: 3.1.0
測試代碼用例:
https://github.com/eryx/labs/tree/master/php-framework-benchmark
測試結果:
1. 粗測: 記憶體佔用,回應時間
* zf: Zend Framework
* ci: CodeIgniter
* yii: Yii Framework
* yaf: Yet Another Framework in PHP Extension
* micromvc: MicroMVC
* all: 匯總對比
記憶體消耗
執行時間 (毫秒)
2. XHProf: 執行詳情
* zf: Zend Framework
執行摘要:
執行詳圖:
* ci: CodeIgniter
執行摘要:
執行詳圖:
* yii: Yii Framework
執行摘要:
執行詳圖:
* yaf: Yet Another Framework in PHP Extension
執行摘要:
執行詳圖:
* micromvc: MicroMVC
執行摘要:
執行詳圖:
* all: 匯總對比
函數調用量
3. 並發測試
ab -c 100 -n 30000
ab -c 200 -n 50000
看完之後第一反應,yaf的運行傳輸速度都快趕上PHP源碼了,感覺就像只是PHP換了一種方式運行,那這個架構裡邊的東西是否健全?因為還不太瞭解yaf,不敢評論太多!
PHP Framework MVC Benchmark 基準測試