做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. TCP协议三次握手过程分析
  2. Linux基础第四课——文件操作
  3. 7、Power Query-合并查询
  4. 剖析SQL Server执行计划
  5. HTML5游戏开发系列教程5(译)
  6. 计算机专业代码834,这六所高校更改专业课目录,其中不乏985高校,多数改为联考!...
  7. java gui变量_关于java:静态/类变量和GUI
  8. Bus Hound错误提示解释
  9. 嵌入式开发中常用的软件设计模式
  10. windows2008R2新增磁盘处于脱机状态及介质写入受保护解决办法
  11. 草根创业,我劝你抓住网络培训的机会!
  12. 常用各种网络模块总结
  13. 鼠标控制c语言扫雷程序,【源码项目】C语言/C+开发,打造一个小项目扫雷小游戏!...
  14. 网络协议之Netflow与sFlow协议
  15. 基于lio-sam框架,教你如何进行回环检测及位姿计算
  16. python根据时间序列画折线图_Python如何根据时间序列数据作图
  17. HDU - 6078 Wavel Sequence(动态规划+时间优化)
  18. 云通讯这局棋,声网、容联云怎么破?
  19. 《数据库原理实验指导书》
  20. K8s系列之-集群节点规划

热门文章

  1. 如何在阿里云申请和注册域名(域名绑定解析)?
  2. [seccon pwn] babyfile 复现
  3. Java 向上转型 向下转型 instanceof
  4. 超级红队知识库等你来战-我们要站在红队之巅
  5. HTML 标签整理
  6. 太原科技大学计算机院李建伟,李俊林-太原科技大学应用科学学院
  7. 一个不当使用fclose引发的异常
  8. python动态数组怎么实现_如何创建动态数组
  9. 我司为了避免我下班高峰挤公交
  10. 在Node环境中使用JS搭建一个基础服务器