之前曾經看過 DooPHP 1.0 剛出來的時候標榜是效能最快的 MVC FrameWork
今天來去 DooPHP 網站看到已經更新到 1.2
與之前看到的有些許不同
例如 , DB Model 有支援 Master/Slave 架構 Wow ~~~
view 部分以前是用 Template 來實作 , 而現在多出了以原生 php 當 view , 也就是可以任君選擇啦
看起來 DooPHP 進展很快 ~ 頗有幹掉 YII 的氣勢喔 , 改天要來好好玩一下了
http://www.doophp.com/
好多MVC FrameWork 令人眼花撩亂ㄚ
對啊~~~
因為用 PHP 開發任何 Web 應用寫的速度都很快 , 自然一堆 FrameWork 被開發出來 ….
可是通病就是比原生 php 直接下去建構網站慢上幾十倍以上 ><
@pigo
那是你們這些高手才會覺得用 Framework 比用原生 php 自己幹來得慢,我們是直接用 Framework 反而比自己幹得快,因為很多快取之類的技巧都不會~ 😛
這裡沒有高手吧 🙂
我也很喜歡用 Framework 啊
目前是對 Yii 比較有好感喔
啊你何時關注 PHP 了 !! 你應該是 C 的高手吧
原生 php 看你怎么写,不一定快。
哇很赞~
http://doophp.com/blog/article/doophp-wallpaper
DooPHP 看起來蠻不錯的!!
最近有一個國產的 Framework 好像也不錯
才剛起步而已,不知道與DooPHP比起來如何
http://lazybones.colorbase.tw/
lazybones 很像 DooPHP
尤其是 View 部分採用類似 DooPHP 的 Template , 我不是很喜歡
當然 DooPHP 1.2 之後也支援 php 的 view
不知道 lazybones 會不會也加入就是了
稍微看了一下 lazybones 的測試數據 , 仍是只測到 route 部分 ,沒有 view 及 db
若以此測試數據來看
DooPHP 的 route 效能比 YII 快3倍 , 仍是超級快的 , 但缺點就是功能少
我看不出來 lazybones 有甚麼特異之處 , 基本上觀念與用法都差不多
不過那麼多的框架 , 我目前還是最喜歡 Yii
因為 Yii 有很多 extension 可以用 , 因為 yii 的出發點也是讓核心簡單速度快 , 把額外功能給別人寫 , 所以很多 extension 可以用 , 也偷了很多 framework 的東西 , 如 Zend Framework 就有部分功能被整合成 Yii 的 extension
嗨 pigo兄
高手果然一針見血!
lazybones 的確在操作介面上大量參考了 DooPHP / CodeIgniter
國際化的部份則參考自 Yii (其實知名的C++ framework – Qt 也採用類似的作法)
Yii 也是我非常推薦的framework,它在結構上非常優美
與 doo / CI 的不同,可能要細細感受才有辦法體會吧,至少相對於 doo 而言,lazybones在細節上加強了許多東西,彈性也較高
我重新做了一次benchmark這次加入了 DooPHP 做比較(原本不想的,因為它太快了 XD)
不過我一樣只做了簡單的測試,有興趣可以參考一下:
http://lazybones.colorbase.tw/benchmark
或許是測試環境的問題??我發現DooPHP私乎沒有像官方給的數據沒那麼快
另外 lazybones 從一開始就可支援您所謂「php 的 view」了
它基本上是因應我的需求而生的,也是我第一次 open source,抱著嘗試的心態,看看能不能激起什麼回應,或許過一陣子我認為lazybones沒有存在的價值,就會撤掉這個東西了吧 XD
請多多指教囉~ 🙂
@阿育
我特別去下載測試 code , 但都有下列錯誤 , 導致 lazybones 產生的頁面是 NOT Found , 這頁面訊息是 lazybones 給的不是 apache 給的耶 , 我的測試平台是 PHP 5.3.2RC3
[Sat Feb 27 18:05:08 2010] [error] [client 192.168.88.254] PHP Warning: call_user_func_array() expects parameter 2 to be array, null given in /srv/www/testcode/lazybones/basic/Lazybones/_lazybones/core/LZ_Event.php on line 41
[Sat Feb 27 18:05:40 2010] [error] [client 192.168.88.254] PHP Warning: call_user_func_array() expects parameter 2 to be array, null given in /srv/www/testcode/lazybones/basic/Lazybones/_lazybones/core/LZ_Event.php on line 41
[Sat Feb 27 18:05:41 2010] [error] [client 192.168.88.254] PHP Warning: call_user_func_array() expects parameter 2 to be array, null given in /srv/www/testcode/lazybones/basic/Lazybones/_lazybones/core/LZ_Event.php on line 41
[Sat Feb 27 18:05:45 2010] [error] [client 192.168.88.254] PHP Warning: call_user_func_array() expects parameter 2 to be array, null given in /srv/www/testcode/lazybones/basic/Lazybones/_lazybones/core/LZ_Event.php on line 41
[Sat Feb 27 18:05:48 2010] [error] [client 192.168.88.254] PHP Warning: call_user_func_array() expects parameter 2 to be array, null given in /srv/www/testcode/lazybones/basic/Lazybones/_lazybones/core/LZ_Event.php on line 41
[Sat Feb 27 18:06:54 2010] [error] [client 192.168.88.254] PHP Warning: call_user_func_array() expects parameter 2 to be array, null given in /srv/www/testcode/lazybones/basic/Lazybones/_lazybones/core/LZ_Event.php on line 41
@pigo
原來是這個地方我疏忽了,我的PHP版本是5.2.6,沒顯出現過這個錯誤
所以我一直以為是apache設定的問題,因為某些地方如果設定錯誤也會出現一樣的錯誤結果
看來我需要找個時間灌一下新一點的版本測試一下了….
現已放上一個修正版,感謝提供這個錯誤訊息
看起來真的是測試環境有差喔 , 我的測試比較像 DooPHP 的 benchmark , 我的機器上 DooPHP 確實比 Yii 快 2 倍以上 , 我裝的是 APC 喔 , 不知道是不是這原因
Server Software: Apache/2.2.3
Server Hostname: testcode.pigo.idv.tw
Server Port: 80
Yii 測試
Document Path: /lazybones/basic/Yii/demos/helloworld/
Document Length: 11 bytes
Concurrency Level: 10
Time taken for tests: 11.461265 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 2390000 bytes
HTML transferred: 110000 bytes
Requests per second: 872.50 [#/sec] (mean)
Time per request: 11.461 [ms] (mean)
Time per request: 1.146 [ms] (mean, across all concurrent requests)
Transfer rate: 203.56 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 5
Processing: 2 10 10.0 8 266
Waiting: 1 10 9.7 7 266
Total: 2 10 10.0 8 266
Doo PHP 測試
Document Path: /lazybones/basic/DooPHP/app/
Document Length: 11 bytes
Concurrency Level: 10
Time taken for tests: 5.452340 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 2390000 bytes
HTML transferred: 110000 bytes
Requests per second: 1834.07 [#/sec] (mean)
Time per request: 5.452 [ms] (mean)
Time per request: 0.545 [ms] (mean, across all concurrent requests)
Transfer rate: 427.89 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 1 4 5.0 3 165
Waiting: 0 4 4.7 3 164
Total: 1 4 5.0 3 165
Lazybones 測試
Document Path: /lazybones/basic/Lazybones/
Document Length: 11 bytes
Concurrency Level: 10
Time taken for tests: 7.706355 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 2360000 bytes
HTML transferred: 110000 bytes
Requests per second: 1297.63 [#/sec] (mean)
Time per request: 7.706 [ms] (mean)
Time per request: 0.771 [ms] (mean, across all concurrent requests)
Transfer rate: 298.97 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.2 0 5
Processing: 1 7 6.1 6 193
Waiting: 1 6 6.0 5 193
Total: 1 7 6.2 6 193
貼一下軟硬體
OS : Proxmox VE Kernel 2.6.24-9 64bit 以 OpenVZ 安裝 CentOS 5 Template
PHP : php-5.3.2-0.2.RC3.el5.remi
APC : php-pecl-apc-3.1.3p1-1.el5.remi
Apache : httpd-2.2.3-31.el5.centos.2
Apache MPM : prefork
CPU : Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz
DRAM : DDR2 800 8G
看來 Doo 真的很快,改天也來裝一下APC看看結果會是如何
感謝提供測試數據 🙂