各個 PHP Framework performance 比較 - part2
繼上次寫過非常不專業的PHP Framework比較後,最近在JosephJ的網誌中,看到了PHP之父Rasmus來台灣演講的消息,看了他演講的內容,覺得對於一個PHP Developer而言,一定受益匪淺!,身為一個PHP programer沒有去朝聖一下真的是太可惜了!於Rasmus的投影片的Slides還有JosehpJ提到的內容,我比較感興趣的是他對PHP Framewrok的看法,以及他所做的評測,他的投影片中還有各個Framework的架構圖,讓程式開發者對於自己所使用的Framework能有更深的了解!
像是我自己最近在學習使用的CodeIgniter,我就覺得他所畫的架構圖比官方所提供的教學文件要來得簡單易懂多了!(CodeIgniter 架構圖 by Rasmus:http://talks.php.net/show/froscon08/30)
Frameworks | Response time | Transaction rate |
PHP | 0.01 secs | 606.77 trans/sec |
CakePHP 1.2.0rc2 | 0.19 secs | 25.88 trans/sec |
Symfony 1.1 | 0.05 secs | 100.63 trans/sec |
Solar 1.0.0alpha1 | 0.02 secs | 271.18 trans/sec |
Agavi 1.0-beta1 | 0.04 secs | 126.91 trans/sec |
Zend Framework 1.6.0-rc1 | 0.04 secs | 130.08 trans/sec |
CodeIgniter 1.6.3 | 0.03 secs | 305.90 trans/sec |
Prado 3.1.2 | 0.06 secs | 76.95 trans/sec |
Drupal 6.4 | 0.10 secs | 51.37 trans/sec |
製表:eugg 資料來源:http://talks.php.net/show/froscon08/
比較有名的PHP Framework應該算是CakePHP、Symfony、Zend(官方)、CodeIgniter,我必須老實說,我對Agavi還有Prado在看他的Slides前是完全沒有聽過XD。另外,我不知道Drupal來這裡湊什麼熱鬧?他應該算是PHP的 CMS吧…拿CMS和Framewrok比performance,自然是大輸的啊!XX比雞腿嘛!
以Rasmus的slides整理出來的performance來說,從Transaction rate 來看,效能從最好到最差應該是:
CodeIgniter > Solar > Agavi = Zend > Symfony > Prado > CakePHP
而從Response time來看的話也是…上面和下面的排序只有第一和第二差一點點而以
Solar > CodeIgniter > Agavi = Zend > Symfony > Prado > CakePHP
以數據來看,效能表現比較好的,就是CodeIgniter、Solar這二個Framework,比較有名的官方Zend還有de.li.cio.us所用的Symfony的表現都只是平平。其實我還蠻驚訝的是CakePHP的名氣還蠻大的呀!可是他的Performance卻是最差的!重點是他在Response time還有Transaction rate 上都比我歸類為CMS的Drupal還來的差是怎麼回事?該說是Drupal 真的是效能太好的CMS還是CakePHP真的太遜了呢…Orz….
該如何選PHP Framework?
對於我自己來說,會用Framework不外乎就是為了要增加開發資料庫網站程式的效率,還有將網站做成漂亮的MVC架構。我最後依自己用的順手,還有performance來選擇,選了CodeIgniter,目前用起來相當的順手,對我來說學習曲線很短,只要看他官方的User_guide,再和影片教學做一次,就可以順利開始寫程式了。但是不知道是我本身的問題還是CodeIgniter的問題,我最後寫出來的程式碼還是蠻多的Orz….看來要寫出漂亮的MVC platform網站,我還有很長的路要走…
其實,Rasmus本人其實不是很推荐使用Framework的
“也因此Rasmus主張讓 PHP 非常簡單就可以使用,不往 Framework 的方向來發展。對於 Scalability,只要有對的 Architecture 及適當定義的 API,就會有非常好的效能。”--JosephJ
所以,不管你選了什麼Framework或是決定不使用,只要能用的很熟、順手、能讓程式碼的開發效率大增、網站的架構漂亮,我相信效能一定不是嚴重的問題的!
留言
張貼留言