python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)


Posted in Python onAugust 25, 2014

测了一下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位 重新进行了测试,得出与生产环境更匹配的结果,并修改了文章。

Python 相关文章推荐
学习python的几条建议分享
Feb 10 Python
Python中的Classes和Metaclasses详解
Apr 02 Python
Android应用开发中Action bar编写的入门教程
Feb 26 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
Dec 05 Python
通过python改变图片特定区域的颜色详解
Jul 15 Python
python解释器pycharm安装及环境变量配置教程图文详解
Feb 26 Python
小结Python的反射机制
Sep 28 Python
python3中布局背景颜色代码分析
Dec 01 Python
用Python监控你的朋友都在浏览哪些网站?
May 27 Python
用Python selenium实现淘宝抢单机器人
Jun 18 Python
python3编写C/S网络程序实例教程
Aug 25 #Python
python实现从字符串中找出字符1的位置以及个数的方法
Aug 25 #Python
Python实现根据指定端口探测服务器/模块部署的方法
Aug 25 #Python
python的类变量和成员变量用法实例教程
Aug 25 #Python
Python写的创建文件夹自定义函数mkdir()
Aug 25 #Python
Python中的startswith和endswith函数使用实例
Aug 25 #Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 #Python
You might like
PHP的中问验证码
2006/11/25 PHP
兼容PHP5的PHP目录管理函数库
2008/07/10 PHP
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
2015/12/21 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
JS检测图片大小的实例
2013/08/21 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
2014/10/14 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
jQuery列表检索功能实现代码
2017/07/17 jQuery
js封装成插件的步骤方法
2017/09/11 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
[02:35]DOTA2超级联赛专访XB 难忘一年九冠称王
2013/06/20 DOTA
python函数形参用法实例分析
2015/08/04 Python
Python与R语言的简要对比
2017/11/14 Python
解决python selenium3启动不了firefox的问题
2018/10/13 Python
使用memory_profiler监测python代码运行时内存消耗方法
2018/12/03 Python
Python图像处理之gif动态图的解析与合成操作详解
2018/12/30 Python
Python脚本调试工具安装过程
2021/01/11 Python
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
入党申请人的自我鉴定
2013/12/01 职场文书
幼儿园英语教学反思
2014/01/30 职场文书
公交公司毕业生求职信
2014/02/15 职场文书
安全生产管理责任书
2014/04/16 职场文书
李开复演讲稿
2014/05/24 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
七一建党日演讲稿
2014/09/05 职场文书
教师学期个人总结
2015/02/11 职场文书
2015新学期校长寄语(3篇)
2015/03/25 职场文书
2015年读书月活动总结
2015/03/26 职场文书
2015大学生入党个人自传
2015/06/26 职场文书