摘要:主流框架性能非權(quán)威測(cè)試作為一個(gè)開(kāi)發(fā)者,而且是初創(chuàng)企業(yè)團(tuán)隊(duì)的技術(shù)開(kāi)發(fā)者,選擇開(kāi)發(fā)框架是個(gè)很艱難的事情。用的話,語(yǔ)法有點(diǎn)啰嗦,前后端代碼分離有點(diǎn)小麻煩,不過(guò)性能是非常好的,而且已經(jīng)有眾多國(guó)內(nèi)大公司在使用了,出現(xiàn)意外可以快速的找到大牛答疑解惑。
主流PHP框架性能非權(quán)威測(cè)試
作為一個(gè)PHP開(kāi)發(fā)者,而且是初創(chuàng)企業(yè)團(tuán)隊(duì)的技術(shù)開(kāi)發(fā)者,選擇開(kāi)發(fā)框架是個(gè)很艱難的事情。
用ThinkPHP的話,招聘一個(gè)剛從培訓(xùn)機(jī)構(gòu)出來(lái)的開(kāi)發(fā)者就可以上手了,但是性能和后期代碼解耦是個(gè)讓人頭疼的事情。不過(guò)很多第三方功能不需要自己寫(xiě),眾多大牛已經(jīng)給鋪好路了。
用Laravel的話,傳說(shuō)寫(xiě)起來(lái)很爽擴(kuò)展性也夠,但是學(xué)習(xí)成本有點(diǎn)高,總不能給初級(jí)開(kāi)發(fā)者半個(gè)月的時(shí)間去學(xué)習(xí)框架吧。而且據(jù)說(shuō)江湖人士透漏,Laravel性能不怎么樣,文檔也并不是特別豐富。
用Yii的話,語(yǔ)法有點(diǎn)啰嗦,前后端代碼分離有點(diǎn)小麻煩,不過(guò)性能是非常好的,而且已經(jīng)有眾多國(guó)內(nèi)大公司在使用了,出現(xiàn)意外可以快速的找到大牛答疑解惑。
不如做個(gè)簡(jiǎn)單的性能評(píng)測(cè),選個(gè)性能出色的總不會(huì)出錯(cuò)
性能測(cè)試測(cè)試時(shí)間: 2016年05月06日
測(cè)試工具: siege (因?yàn)镸AC系統(tǒng)的ab總是會(huì)出現(xiàn) pr_socket_recv: Connection reset by peer (54) 的錯(cuò)誤,所以選擇了siege)
測(cè)試機(jī)器: MacPro Core i5 處理器/8GB內(nèi)存/256GB SSD閃存
測(cè)試環(huán)境: Apache PHP5.6
框架版本: ThinkPHP 3.2.3 Laravel 5.2 Yii2.0.5
測(cè)試原則: 每次測(cè)試循環(huán)5次,取中等數(shù)據(jù)
補(bǔ)充說(shuō)明:所有項(xiàng)目都是讓在子目錄中
結(jié)果說(shuō)明Transactions: 2119 hits 處理請(qǐng)求總數(shù)量 Availability: 96.85 % 可用性 Elapsed time: 9.74 secs 運(yùn)行時(shí)間 Data transferred: 1.31 MB 數(shù)據(jù)傳輸量 Response time: 0.60 secs 響應(yīng)時(shí)間 Transaction rate: 217.56 trans/sec 每秒處理效率 Throughput: 0.13 MB/sec 每秒處理數(shù)據(jù) Concurrency: 130.28 并發(fā) Successful transactions: 2162 成功的請(qǐng)求 Failed transactions: 69 失敗的請(qǐng)求 Longest transaction: 2.85 最長(zhǎng)的單個(gè)請(qǐng)求 Shortest transaction: 0.01 最短的單個(gè)請(qǐng)求開(kāi)始測(cè)試
增加一個(gè)控制器,并在控制器中輸入10000次HelloWorld
并發(fā)50循環(huán)10次:
首先向我們走來(lái)的是ThinkPHP,看上去還行
Transactions: 500 hits Availability: 100.00 % Elapsed time: 2.81 secs Data transferred: 52.45 MB Response time: 0.26 secs Transaction rate: 177.94 trans/sec Throughput: 18.67 MB/sec Concurrency: 47.10 Successful transactions: 500 Failed transactions: 0 Longest transaction: 0.48 Shortest transaction: 0.03
然后是Laravle,嗯,略微有些失望
Transactions: 500 hits Availability: 100.00 % Elapsed time: 13.33 secs Data transferred: 52.45 MB Response time: 1.27 secs Transaction rate: 37.51 trans/sec Throughput: 3.93 MB/sec Concurrency: 47.55 Successful transactions: 500 Failed transactions: 0 Longest transaction: 3.64 Shortest transaction: 0.07
最后賽前比較看好的Yii
Transactions: 500 hits Availability: 100.00 % Elapsed time: 4.84 secs Data transferred: 52.45 MB Response time: 0.46 secs Transaction rate: 103.31 trans/sec Throughput: 10.84 MB/sec Concurrency: 47.65 Successful transactions: 500 Failed transactions: 0 Longest transaction: 0.88 Shortest transaction: 0.04
并發(fā)200循環(huán)10次:
首先是ThinkPHP
Transactions: 1977 hits Availability: 98.85 % Elapsed time: 10.03 secs Data transferred: 207.40 MB Response time: 0.95 secs Transaction rate: 197.11 trans/sec Throughput: 20.68 MB/sec Concurrency: 187.68 Successful transactions: 1977 Failed transactions: 23 Longest transaction: 1.22 Shortest transaction: 0.02
然后是Laravel
Transactions: 1890 hits Availability: 94.50 % Elapsed time: 51.85 secs Data transferred: 198.27 MB Response time: 4.88 secs Transaction rate: 36.45 trans/sec Throughput: 3.82 MB/sec Concurrency: 178.00 Successful transactions: 1890 Failed transactions: 110 Longest transaction: 26.01 Shortest transaction: 0.07
最后是Yii
Transactions: 1996 hits Availability: 99.80 % Elapsed time: 18.95 secs Data transferred: 209.39 MB Response time: 1.79 secs Transaction rate: 105.33 trans/sec Throughput: 11.05 MB/sec Concurrency: 188.57 Successful transactions: 1996 Failed transactions: 4 Longest transaction: 3.29 Shortest transaction: 0.10
沒(méi)想到在沒(méi)有優(yōu)化的情況下,ThinkPHP的速度是最快的,Yii略微多一些,Laravel步履蹣跚的跑完了測(cè)試。結(jié)果是有些出人意料的,不過(guò)上述的測(cè)試只代表了開(kāi)發(fā)環(huán)境,下面會(huì)對(duì)框架進(jìn)行優(yōu)化,模擬線上環(huán)境。
優(yōu)化框架ThinkPHP:
APP_DEBUG改為false
Laravel:
APP_DEBUG改為false php artisan route:cache php artisan optimize php artisan config:cache composer dumpautoload -o
Yii:
YII_DEBUG改為false composer dumpautoload -o
并發(fā)200循環(huán)10次:
ThinkPHP
Transactions: 1655 hits Availability: 82.75 % Elapsed time: 8.21 secs Data transferred: 173.62 MB Response time: 0.69 secs Transaction rate: 201.58 trans/sec Throughput: 21.15 MB/sec Concurrency: 139.29 Successful transactions: 1655 Failed transactions: 345 Longest transaction: 7.83 Shortest transaction: 0.00
Laravel:
Transactions: 1520 hits Availability: 76.00 % Elapsed time: 34.95 secs Data transferred: 159.45 MB Response time: 3.15 secs Transaction rate: 43.49 trans/sec Throughput: 4.56 MB/sec Concurrency: 136.84 Successful transactions: 1520 Failed transactions: 480 Longest transaction: 19.18 Shortest transaction: 0.00
Yii:
Transactions: 1704 hits Availability: 85.20 % Elapsed time: 15.16 secs Data transferred: 178.76 MB Response time: 1.46 secs Transaction rate: 112.40 trans/sec Throughput: 11.79 MB/sec Concurrency: 164.21 Successful transactions: 1704 Failed transactions: 296 Longest transaction: 9.04 Shortest transaction: 0.00
比較奇怪的一點(diǎn),當(dāng)框架關(guān)掉調(diào)試模式后都出現(xiàn)了較多失敗的情況。不過(guò)明顯的看到,Laravel進(jìn)行簡(jiǎn)單的優(yōu)化后,性能大大的提升了,但還是低于其他兩個(gè)框架。
結(jié)論在測(cè)試的過(guò)程中,其他我的心情是沮喪的,感覺(jué)自己的三觀世界已經(jīng)崩塌了,崩塌至渣。
ThinkPHP的性能比Yii高出一倍,比Laravel高出近四倍
Yii的性能比較中庸,但是在測(cè)試中會(huì)明顯發(fā)現(xiàn)請(qǐng)求失敗的情況比其他兩個(gè)框架要少
Laravel依舊優(yōu)雅,不過(guò)性能堪憂,用網(wǎng)友的話形容比較好 學(xué)之者生用之者死
最后我的項(xiàng)目最后使用了自建框架進(jìn)行開(kāi)發(fā),得益于composer的強(qiáng)大,開(kāi)發(fā)的過(guò)程非常順利,最后附上自有框架在200并發(fā)10次循環(huán)的數(shù)據(jù),框架開(kāi)源但是更新比較忙,歡迎在github上搜索PPPHP,和我一起搭建框架。
Transactions: 1672 hits Availability: 83.60 % Elapsed time: 6.18 secs Data transferred: 175.40 MB Response time: 0.57 secs Transaction rate: 270.55 trans/sec Throughput: 28.38 MB/sec Concurrency: 153.16 Successful transactions: 1672 Failed transactions: 328 Longest transaction: 4.57 Shortest transaction: 0.01
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/21537.html
摘要:測(cè)試環(huán)境測(cè)試前預(yù)熱測(cè)試預(yù)熱結(jié)束之后,各個(gè)框架分別輸出本地壓測(cè)最后從結(jié)果上來(lái)看表現(xiàn)不俗,后期會(huì)用再測(cè)試一下。以上僅供參考,希望后期不斷優(yōu)化讓變得更快更好。一個(gè)極速輕量級(jí)的全棧框架 測(cè)試環(huán)境 OS : Deepin 15.4 unstable Kernel : x86_64 Linux 4.9.0-deepin4-amd64 Uptime : 3d 22h 42m...
摘要:后端好書(shū)閱讀與推薦系列文章后端好書(shū)閱讀與推薦后端好書(shū)閱讀與推薦續(xù)后端好書(shū)閱讀與推薦續(xù)二后端好書(shū)閱讀與推薦續(xù)三后端好書(shū)閱讀與推薦續(xù)四這里依然記錄一下每本書(shū)的亮點(diǎn)與自己讀書(shū)心得和體會(huì),分享并求拍磚。 后端好書(shū)閱讀與推薦系列文章:后端好書(shū)閱讀與推薦后端好書(shū)閱讀與推薦(續(xù))后端好書(shū)閱讀與推薦(續(xù)二)后端好書(shū)閱讀與推薦(續(xù)三)后端好書(shū)閱讀與推薦(續(xù)四) 這里依然記錄一下每本書(shū)的亮點(diǎn)與自己讀書(shū)心得...
摘要:年月日,在上海舉行的第六屆中國(guó)開(kāi)發(fā)者大會(huì)上,騰訊開(kāi)源項(xiàng)目首次全面發(fā)布版本,閱文集團(tuán)高級(jí)開(kāi)發(fā)工程師梁晨對(duì)如何通過(guò)構(gòu)建高性能框架做了經(jīng)驗(yàn)分享。分享內(nèi)容作為騰訊開(kāi)源的框架,在發(fā)布之后即受到開(kāi)源領(lǐng)域的關(guān)注。閱文集團(tuán)本身也有一塊新的業(yè)務(wù)在使用。 2018年5月19日,在上海舉行的第六屆中國(guó)PHP開(kāi)發(fā)者大會(huì)(PHPCon)上,騰訊開(kāi)源項(xiàng)目TARS首次全面發(fā)布PHP版本,閱文集團(tuán)高級(jí)開(kāi)發(fā)工程師梁晨對(duì)...
摘要:這是我收集的一些資源,分享給大家,全部放在百度網(wǎng)盤(pán),有需要的請(qǐng)轉(zhuǎn)存到自己的網(wǎng)盤(pán)或者下載,以免網(wǎng)盤(pán)鏈接失效,另外還有幾百的視頻文件存在網(wǎng)盤(pán),需要的加全部分享在空間,自己可以去下載與權(quán)威指南配套源碼禪意花園高清源碼基礎(chǔ)教程權(quán)威指南參考手冊(cè)鋒利 這是我收集的一些資源,分享給大家,全部放在百度網(wǎng)盤(pán),有需要的請(qǐng)轉(zhuǎn)存到自己的網(wǎng)盤(pán)或者下載,以免網(wǎng)盤(pán)鏈接失效,另外還有幾百G的視頻文件存在網(wǎng)盤(pán),需要的加...
閱讀 3456·2021-09-08 09:45
閱讀 1320·2019-08-30 15:53
閱讀 1594·2019-08-30 14:12
閱讀 1033·2019-08-29 17:01
閱讀 2631·2019-08-29 15:35
閱讀 468·2019-08-29 13:09
閱讀 2038·2019-08-29 12:32
閱讀 3141·2019-08-26 18:37