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输出9*9乘法表的方法
May 25 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
python实现飞机大战
Sep 11 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
Python字典遍历操作实例小结
Mar 05 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
Python爬虫基础之爬虫的分类知识总结
May 13 Python
Python 数据可视化之Bokeh详解
Nov 02 Python
浅析Python OpenCV三种滤镜效果
Apr 11 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
EXT中xtype的含义分析
2010/01/07 Javascript
jquery last-child 列表最后一项的样式
2010/01/22 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
node.js中的fs.writeSync方法使用说明
2014/12/15 Javascript
JS操作XML实例总结(加载与解析XML文件、字符串)
2015/12/08 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
JS代码简洁方式之函数方法详解
2020/07/28 Javascript
在react项目中使用antd的form组件,动态设置input框的值
2020/10/24 Javascript
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
python使用any判断一个对象是否为空的方法
2014/11/19 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
Django生成PDF文档显示在网页上以及解决PDF中文显示乱码的问题
2019/07/04 Python
python之生产者消费者模型实现详解
2019/07/27 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
python返回数组的索引实例
2019/11/28 Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
2020/01/25 Python
Python ORM框架Peewee用法详解
2020/04/29 Python
keras 读取多标签图像数据方式
2020/06/12 Python
Aveda美国官网:天然护发产品、洗发水、护发素和沙龙
2016/12/09 全球购物
美国奢侈品在线团购网站:Gilt City
2017/11/16 全球购物
电脑租赁公司创业计划书
2014/01/08 职场文书
运动会广播稿150字
2014/02/19 职场文书
大学生应聘求职信
2014/05/26 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
2019广播稿怎么写
2019/04/17 职场文书
如何使用pdb进行Python调试
2021/06/30 Python
Python+腾讯云服务器实现每日自动健康打卡
2021/12/06 Python