python一般的なWebフレームワークの簡単なパフォーマンステスト結果の共有(django、flask、bottle、tornadoを含む)

3954 ワード

django,flask,bottle,tornadoフレームワーク自体の最も簡単な性能を測定した.djangoの性能には全く無言です.
django、flask、bottleはgunicorn+geventを使用して起動し、単一プロセスでDEBUGを閉じ、要求は1つの文字列okのみを返します.
tornadoは直接自分で起動し、他の内容は一致しています.
テストソフトウェアはsiege、テストosはcenos 6 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 centos 6 64ビットを使用してテストを再開し、生産環境とより一致した結果を得て、文章を修正しました.