做Python的人,一定知道两个性能优秀的异步网络框架:tornado,和twisted。

那么,这两个著名的框架,又有什么异同呢?tornado和twisted,我都用在几个游戏项目中,做过后端,觉得它俩其实大同小异。今天花一些时间,来分析它们之间的异同。如果有误,请大家指正:

对比结果:

tornado 和 twisted,作为异步框架,是大同小异的。只不过tornado 轻量级一些,twisted 重量级一些。在其他方面,也是互有长短。经过实测,发现这两个框架,I/O性能差不多,对计算资源的占用相差较多!  如果追求整体性能的话,推荐使用twisted。

注意,这里的“高”和“低”只是它俩之间的对比。

测试说明:

都在一台Linux机器上,同时接收5W个TCP数据包(包含一些游戏数据),进行解析处理。为了保证测试准确性,算法一致(甚至变量都完全一致)。

tornado 的运行情况:

twisted 的运行情况:

Tornado:完成这5W个包的处理,会快一点点。完成时间在32秒左右。但是CPU占用达到45%。

Twisted:完成这5W个包的处理,相对就慢一些。完成时间在34秒左右。CPU占用低一些,为32%。

单独测试收发包:

Tornado:每秒可完成14000次收发包(包大小101字节),CPU的一个核心跑满。

Twisted:每秒可完成89000次(在另一台I5的本地机器上测,是10万次)收发包(包大小101字节)。CPU的一个核心跑满。

附注,测试使用的版本为:【tornado 3.2.0】,【 twisted 13.2.0】

python异步框架twisted_对比Tornado和Twisted两种异步Python框架相关推荐

  1. 对比Tornado和Twisted

    做Python的人,一定知道两个性能优秀的异步网络框架:tornado,和twisted. 那么,这两个著名的框架,又有什么异同呢?tornado和twisted,我都用在几个游戏项目中,做过后端,觉 ...

  2. python爬虫框架排行榜-哪种Python框架适合你?简单介绍几种主流Python框架

    众所周知,Python开发框架大大减少了开发者不必要的重复劳动,提高了项目开发效率的同时,还使得创建的程序更加稳定.目前比较主流的Python框架都有哪些呢?一般大家用的比较多的是Django.Fla ...

  3. 以两种异步模型应用案例,深度解析Future接口

    摘要:本文以实际案例的形式分析了两种异步模型,并从源码角度深度解析Future接口和FutureTask类. 本文分享自华为云社区<[精通高并发系列]两种异步模型与深度解析Future接口(一) ...

  4. 小结两种在Python中导入C语言扩展库的方法

    小结两种在Python中导入C语言扩展库的方法 分类: Pythoner2009-08-18 20:44 2563人阅读 评论(1) 收藏 举报 python扩展c语言importstring 一种是 ...

  5. 运用Python爬取二手房价格与信息的两种常用方法

    最近房地产市场进一步收紧,多地地方政府出台各种收紧政策,以保证房地产健康发展,因此云朵君就想到运用Python网络爬虫,抓取部分房产信息,了解下最近房地产的情况. 接下来以房天下二手房信息,以获取某个 ...

  6. Python计算程序运行时间秒级/毫秒级的两种方法datetime和time

    Python计算程序运行时间秒级/毫秒级的两种方法datetime和time 简单粗暴,先上代码: import datetime import time# 方法一:datetime.datetime ...

  7. python变量pi和pi被看作相同的变量_python分享pi的方法 两种用python分享p

    两种用python分享pi的方法,必须按照两种计算方def pisum(n): pi=3 sign=1 for i in range(1,n+1): pi+=sign*4.0/((i+1)*(i+2) ...

  8. python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式

    本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...

  9. python .net web开发对比_Python与C#/.NET——在使用Python开发大型web应用程序时,需要考虑哪些关键区别?...

    ".NET"不是一种语言.也许是Python vs.C#,或者Python/Django vs.C#/ASP.NET(或者选择任何你想要的"网络作品":Pyth ...

最新文章

  1. 数据预处理知识点汇总
  2. linux_vim编辑文件无法高亮显示解决方法
  3. 大白话系列之C#委托与事件讲解(二)
  4. ABAP OPEN SQL 模糊查询的方法
  5. WebFlux02 SpringBoot WebFlux项目骨架搭建
  6. C#并发编程之异步编程(二)
  7. 数组名与指向数组的指针之间的联系与区别【数据结构】
  8. 时间序列的预处理之纯随机性检验
  9. 解决echart中:Cannot read property ‘queryComponents‘ of undefined
  10. Dvsdk 下的CMEM学习
  11. apk(安卓手机应用软件)解包汉化过程简单陈述 [转贴]
  12. atitit.MyEclipse10 中增加svn插件故障排除
  13. 交换机的基本交换配置
  14. 联想笔记本电脑电池修复
  15. 中景园0.96寸 OLED 显示屏 学习笔记
  16. RabbitVCS安装
  17. 怎样去除抖音短视频的水印,快速去除视频水印的方法
  18. Matlab p文件解密,p转m文件 可查看源码
  19. 炉石兄弟 修复图腾师问题 by大神beebee102, 还有阴燃电鳗
  20. mac 不显示 外接屏幕_mac连接投影仪不显示怎么办-mac外接显示器设置教程 - 河东软件园...

热门文章

  1. linux命令sendmail,linux CentOS6的mail/sendmail命令发送电子邮件实现
  2. web课程设计——健身俱乐部健身器材网站模板(24页)HTML+CSS+JavaScript
  3. yolo源码解析(1):代码逻辑
  4. java+鹿鼎记,JAVA集合类汇总
  5. CSS页面布局之盒子模型
  6. iwork8平板电脑安装ubuntu,Z3735d/f系列CPU通用
  7. 深入浅出缓存设计---1、缓存的应用
  8. 对SHFileOperation函数的一点研究
  9. 通用能力抽屉原理简介
  10. MotionEvent对象