python常用web架構簡單效能測試結果分享(包含django、flask、bottle、tornado)_python

來源:互聯網
上載者:User

測了一下django、flask、bottle、tornado 架構本身最簡單的效能。對django的效能完全無語了。

django、flask、bottle 均使用gunicorn+gevent啟動,單進程,並且關閉DEBUG,請求均只返回一個字串ok。

tornado直接自己啟動,其他內容一致。

測試軟體為 siege,測試os為cenos6 64位,測試命令為:

複製代碼 代碼如下:

siege -c 100 -r 100 -b http://127.0.0.1:5000/

django測試結果為:
複製代碼 代碼如下:

Transactions:               10000 hits
Availability:              100.00 %
Elapsed time:               18.51 secs
Data transferred:            0.02 MB
Response time:                0.18 secs
Transaction rate:          540.25 trans/sec
Throughput:                0.00 MB/sec
Concurrency:               99.35
Successful transactions:       10000
Failed transactions:               0
Longest transaction:            0.30
Shortest transaction:            0.12

django(去掉所有middleware)測試結果為:
複製代碼 代碼如下:

Transactions:               10000 hits
Availability:              100.00 %
Elapsed time:               12.97 secs
Data transferred:            0.02 MB
Response time:                0.13 secs
Transaction rate:          771.01 trans/sec
Throughput:                0.00 MB/sec
Concurrency:               99.41
Successful transactions:       10000
Failed transactions:               0
Longest transaction:            0.28
Shortest transaction:            0.12

flask測試結果為:
複製代碼 代碼如下:

Transactions:               10000 hits
Availability:              100.00 %
Elapsed time:                5.47 secs
Data transferred:            0.02 MB
Response time:                0.05 secs
Transaction rate:         1828.15 trans/sec
Throughput:                0.00 MB/sec
Concurrency:               96.25
Successful transactions:       10000
Failed transactions:               0
Longest transaction:            0.11
Shortest transaction:            0.00

bottle測試結果為:
複製代碼 代碼如下:

Transactions:               10000 hits
Availability:              100.00 %
Elapsed time:                4.55 secs
Data transferred:            0.02 MB
Response time:                0.04 secs
Transaction rate:         2197.80 trans/sec
Throughput:                0.00 MB/sec
Concurrency:               96.81
Successful transactions:       10000
Failed transactions:               0
Longest transaction:            0.09
Shortest transaction:            0.00

tornado測試結果為:
複製代碼 代碼如下:

Transactions:               10000 hits
Availability:              100.00 %
Elapsed time:                7.06 secs
Data transferred:            0.02 MB
Response time:                0.07 secs
Transaction rate:         1416.43 trans/sec
Throughput:                0.00 MB/sec
Concurrency:               99.51
Successful transactions:       10000
Failed transactions:               0
Longest transaction:            0.09
Shortest transaction:            0.01

可見純架構自身的效能為:
複製代碼 代碼如下:

bottle > flask > tornado > django

結合實際使用:

tornado 使用了非同步驅動,所以在寫業務代碼時如果稍有同步耗時效能就會急劇下降;
bottle需要自己實現的東西太多,加上之後不知道效能會怎樣;
flask效能稍微差點,但周邊的支援已經很豐富了;
django就不說了,效能已經沒法看了,唯一的好處就是開發的架子都已經搭好,開發速度快很多

因為最近正在為一個項目選型發愁,所以就測了一下,記錄在此吧。

PS: 2014-6-23 使用 centos6 64位 重新進行了測試,得出與生產環境更匹配的結果,並修改了文章。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.