操作系统 : CentOS7.3.1611_x64

Python 版本 : 3.6.8

tornado版本:6.0.2

snaic版本:19.9.0

CPU : Intel(R) Core(TM) i5-2320 CPU @ 3.00GHz 4核

之前一直使用tornado作为http相关python程序的框架,最近查资料发现新出的snaic性能很高,这里在同样硬件条件下使用ab进行简单的压测。

准备工作

安装apache ab工具:

yum -y install httpd-tools

压测命令:

ab -c  -n  http://127.0.0.1:9093/

参数说明:

-c :模拟并发数

-n : 总请求数

对比测试

使用tornado实现的简单http服务器代码: https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/tornadoTest1.py

使用snaic实现的简单http服务器代码:https://github.com/mike-zhang/pyExamples/blob/master/httpRelate/httpServer/snaicTest1.py

tornado测试结果:

Server Software:        TornadoServer/
Server Hostname:        127.0.0.1
Server Port:            

Document Path:          /
Document Length:         bytes

Concurrency Level:
Time taken for tests:   82.282 seconds
Complete requests:
Failed requests:
Write errors:
Total transferred:       bytes
HTML transferred:        bytes
Requests per second:    1215.33 [#/sec] (mean)
Time per request:       24.685 [ms] (mean)
Time per request:       0.823 [ms] (mean, across all concurrent requests)
Transfer rate:          245.68 [Kbytes/sec] received

Connection Times (ms)
                          min  mean[+/-sd] median   max
Connect:
Processing:
Waiting:
Total:                     

Percentage of the requests served within a certain time (ms)
  %
  %
  %
  %
  %
  %
  %
  %
 %      (longest request)

snaic测试结果:

Server Software:
Server Hostname:        127.0.0.1
Server Port:            

Document Path:          /
Document Length:         bytes

Concurrency Level:
Time taken for tests:   20.164 seconds
Complete requests:
Failed requests:
Write errors:
Total transferred:       bytes
HTML transferred:        bytes
Requests per second:    4959.29 [#/sec] (mean)
Time per request:       6.049 [ms] (mean)
Time per request:       0.202 [ms] (mean, across all concurrent requests)
Transfer rate:          537.58 [Kbytes/sec] received

Connection Times (ms)
                          min  mean[+/-sd] median   max
Connect:
Processing:
Waiting:
Total:                       

Percentage of the requests served within a certain time (ms)
  %
  %
  %
  %
  %
  %
  %
  %
 %      (longest request)

从测试结果可以看到,开启两个进程情况下:

tornado的cps是 1215.33 ,平均响应时间是 24.685 ms

snaic的cps是 4959.29 ,平均响应时间是 6.049 ms

修改并发数后的测试数据如下:

测试结果对比如下:

从测试数据来看,snaic的cps比tornado高,平均响应时间方面,snaic也比tornado短。

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2019/20191102_snaic和tornado的简单性能测试.rst

欢迎补充

snaic和tornado的简单性能测试的更多相关文章

  1. Greenplum 简单性能测试与分析

    如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理 ...

  2. Mininet实验 设置带宽之简单性能测试

    原文:设置带宽之简单性能测试 这个实验主要还是说明通过python程序来设定Mininet中的链路带宽. 目的: Python脚本实现自定义拓扑 设置链路的带宽.延迟及丢包率 iperf测试主机间的带 ...

  3. .Net core2.0日志组件Log4net、Nlog简单性能测试

    .Net core之Log4net.Nlog简单性能测试 比较log4net.nlog的文件写入性能(.netcore环境),涉及代码和配置如有不正确的地方,还请批评指正. 原创,转载请著名出处:ht ...

  4. JMeter简单性能测试(适合初学者)

    利用JMeter进行Web测试     JMeter介绍    脚本录制    运行JMeter进行测试    JMeter主要组件介绍    参数化设置    动态数据关联    使用命令行运行JM ...

  5. 将Flask应用程序部署在nginx,tornado的简单方法

    来自:http://www.xuebuyuan.com/618750.html 在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能 ...

  6. ClickHouse之简单性能测试

    前面的文章ClickHouse之初步认识已经简单的介绍了ClickHouse,接下来进行简单的性能测试.测试数据来源于美国民用航班的数据,从1987年到2017年,有1.7亿条. 环境: centos ...

  7. LevelDB和ForestDB简单性能测试(含代码)

    测试环境简单说明 Windows下测试 硬件环境如下: 处理器:Intel(R) Core(TM) i5-4460 CPU @ 3.20GHz 内 存:8GB 硬 盘:希捷 ST1000DM003 操 ...

  8. 框架之Tornado(简单介绍)

    引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而这类服务器通常都是基于多线程的,也就是说每一个网络请求服务器都会有 ...

  9. python web框架之Tornado的简单使用

    python web框架有很多,比如常用的有django,flask等.今天主要介绍Tornado ,Tornado是一个用Python写的相对简单的.不设障碍的Web服务器架构,用以处理上万的同时的 ...

随机推荐

  1. android实现emoji输入

    学android也有一段时间, 一直都是自己摸索, 各种上网查资料, 也明白了不能一味去索取有时间也要分享一些自己的心得 . 最近几天都在写关于android emoji输入的小例子,网上有不少源码还 ...

  2. xampp修改mysql 启动脚本

    打开xmapp,点击mysql对应的config按钮进入my.ini文件,如图所示: 修改mysqld服务的port参数3306为你想要设置的port,如图2所示: 重新启动mysql服务即可用客户端 ...

  3. java多线程技术核心

    1.进程的三大特征: 独立性:拥有自己的独立的地址空间,一个进程不可以直接去访问其他进程的地址空间. 动态性:是一个系统中活动的指令的集合. 并发性:单个进程可以在多个处理器上并发进行,互不影响. 2 ...

  4. Flask基础(07)-->正则自定义转换器

    正则自定义转换器 为什么要自定义正则转换器? 因为默认转换器太过于笨重,往往不能满足我们实际业务的需求,这时候我们就需要自定义正则转换器了. 那么我们怎么自定义正则转换器呢? from flask i ...

  5. Mysql高手系列 - 第18篇:mysql流程控制语句详解(高手进阶)

    Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 这是Mysql系列第18篇. 环境:mysql5.7.25,cmd命令中进行演示. 代码中被[]包含的表示可选,|符 ...

  6. Mac OS Catalina 如何删除自带的应用

    在新推送的系统升级过后,(博主系统是Mac OS Mojave 10.14)我们会发现,之前我们删除的令人讨厌的Mac自带应用又回来了,如果我们还按照之前百度的方式删除的话,参考: https://w ...

  7. Scala 学习笔记之集合(5)

    import collection.mutable.Buffer object CollectionDemo6 { def main(args: Array[String]): Unit = { // ...

  8. AlexNet模型的解析及tensorflow实现

    AlexNet是ImageNet LSVRC 2012比赛中分类效果第一的深度神经网络模型,点击链接下载论文http://papers.nips.cc/paper/4824-imagenet-clas ...

  9. 【Java】支付宝获取人脸采集认证的图片base64格式

    人脸识别结果查询接口zoloz.identification.user.web.query返回的imgStr图片字符串并不是标准的base64格式,解析不出图片. 由于标准的Base64并不适合直接放 ...

  10. 电信资源管理系统:基于 H5 叠加 OpenLayers3 GIS

    前言 通过结合 HTML5 和 OpenLayers 可以组合成非常棒的一个电信地图网络拓扑图的应用,形成的效果可以用来作为电信资源管理系统,美食定位分享软件,片区找房,绘制铁轨线路等等,各个领域都能 ...