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

 更新时间:2014年08月25日 10:51:55   投稿:junjie  
这篇文章主要介绍了python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado),需要的朋友可以参考下

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

相关文章

  • wxPython定时器wx.Timer简单应用实例

    wxPython定时器wx.Timer简单应用实例

    这篇文章主要介绍了wxPython定时器wx.Timer简单应用,实例分析了Python使用wxPython创建窗口应用程序及定时器的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • 如何使用VSCode愉快的写Python于调试配置步骤

    如何使用VSCode愉快的写Python于调试配置步骤

    从我的使用经验出发,可以说VSCode用来写Python真的是再合适不过了,你将体验到丝滑的编程体验和无限扩展的可能。而且,如果你的项目是包含多种语言的,比如Web开发,你不必再开多个编辑器和其他工具,因为这一切都可以在VSCode里完成了
    2018-04-04
  • Python彩色化Linux的命令行终端界面的代码实例分享

    Python彩色化Linux的命令行终端界面的代码实例分享

    美化Linux的terminal终端显示的方法多种多样,这里我们给出一个利用Python彩色化Linux的命令行终端界面的代码实例分享,包括一个Linux下简便执行Python程序的方法,需要的朋友可以参考下
    2016-07-07
  • Python中字典的setdefault()方法教程

    Python中字典的setdefault()方法教程

    在学习python字典操作方法时,感觉setdefault()方法,比字典的其它基本操作方法更难理解的同学比较多,所以想着总结以下,下面这篇文章主要给大家介绍了Python中字典的setdefault()方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • Python利用wxPython制作一个有趣的验证码生成器

    Python利用wxPython制作一个有趣的验证码生成器

    这篇文章主要为大家详细介绍了Python如何利用wxPython制作一个简单有趣的验证码生成器,文中的示例代码讲解详细,需要的小伙伴可以了解一下
    2023-04-04
  • python 实现视频流下载保存MP4的方法

    python 实现视频流下载保存MP4的方法

    今天小编就为大家分享一篇python 实现视频流下载保存MP4的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python使用Word2Vec进行情感分析解析

    python使用Word2Vec进行情感分析解析

    这篇文章主要介绍了python使用Word2Vec进行情感分析解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python面向对象进阶学习

    Python面向对象进阶学习

    在本文里我们整理了关于Python面向对象的进阶学习知识点以及学习路线等内容,有兴趣的朋友们学习下。
    2019-05-05
  • Python JMESPath库轻松操作JSON进行数据查询方法实例

    Python JMESPath库轻松操作JSON进行数据查询方法实例

    这篇文章主要为大家介绍了Python JMESPath库轻松操作JSON方法实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Python GUI学习之登录系统界面篇

    Python GUI学习之登录系统界面篇

    这篇文章主要介绍了Python GUI学习之登录系统界面篇,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论