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ビット、テストコマンドは:
djangoテストの結果は次のとおりです.
django(middlewareをすべて削除)のテスト結果は次のとおりです.
flaskテストの結果は次のとおりです.
bottleテストの結果は次のとおりです.
tornadoテストの結果は次のとおりです.
純粋なフレームワーク自体のパフォーマンスは次のとおりです.
実際に使用する場合:
tornadoは非同期駆動を使用しているので、ビジネスコードを書くときに少し同期時間がかかると性能が急激に低下します.bottleは自分で実現しなければならないものが多すぎて、加えて性能がどうなるか分かりません.flaskの性能は少し劣っていますが、周辺のサポートはすでに豊富です.djangoは言わないで、性能はすでに見ることができなくて、唯一の利点は開発の棚がすべてすでに組み立てられて、開発のスピードはずっと速いです
最近一つの項目の選定に悩んでいるので、測って、ここに記録しましょう.
PS:2014-6-23 centos 6 64ビットを使用してテストを再開し、生産環境とより一致した結果を得て、文章を修正しました.
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ビットを使用してテストを再開し、生産環境とより一致した結果を得て、文章を修正しました.