文档章节

gevent 的异步 StreamServer

水果糖
 水果糖
发布于 2016/05/06 11:18
字数 272
阅读 94
收藏 0

测试环境windows + python + gevent,有条件的朋友可以采用pypy测试。


code:

# -*- coding: UTF-8 -*-
from gevent.monkey import patch_all;patch_all()
from gevent.server import StreamServer


def main(socket,address):
    socket.recv(4096)
    socket.send("HTTP/1.1 200 OK\n\n<h1>Hello World!</h1>")



if __name__ == '__main__':
    Server = StreamServer(("192.168.1.190",80),main)
    Server.serve_forever()
    #Server.close()


测试工具(ab):

    

[root@test ~]# ab -c 200 -n 5000000  http://192.168.1.190/

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 192.168.1.190 (be patient)
Completed 500000 requests
Completed 1000000 requests
Completed 1500000 requests
Completed 2000000 requests
Completed 2500000 requests
Completed 3000000 requests
Completed 3500000 requests
Completed 4000000 requests
Completed 4500000 requests
Completed 5000000 requests
Finished 5000000 requests


Server Software:
Server Hostname:        192.168.1.190
Server Port:            80

Document Path:          /
Document Length:        21 bytes

Concurrency Level:      200
Time taken for tests:   493.025 seconds
Complete requests:      5000000
Failed requests:        0
Write errors:           0
Total transferred:      190000000 bytes
HTML transferred:       105000000 bytes
Requests per second:    10141.48 [#/sec] (mean)
Time per request:       19.721 [ms] (mean)
Time per request:       0.099 [ms] (mean, across all concurrent requests)
Transfer rate:          376.34 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   1.2      0      16
Processing:     3   19   3.8     18     136
Waiting:        1   19   3.8     18     136
Total:          3   20   3.8     19     138

Percentage of the requests served within a certain time (ms)
  50%     19
  66%     20
  75%     21
  80%     21
  90%     23
  95%     26
  98%     29
  99%     33
 100%    138(longest request)
 
[root@test ~]#



© 著作权归作者所有

共有 人打赏支持
水果糖
粉丝 15
博文 157
码字总数 52251
作品 0
深圳
程序员
Python的Gevent框架的支持wsgi的多进程模式么

@郭煜 你好,想跟你请教个问题: 看了你的gevent框架的多进程模式,但是我实际实验的时候发现并不支持,并且会报 Traceback (most recent call last): File "stream.py", line 29, in s.pre...

王晴天
2013/06/20
1K
2
gfirefly 框架分析

数据包 协议 协议如下表 HEAD_0 ... HEAD_3 protoVersion serverVersion length char ... char int int int gfirefly框架是基于TCP协议的长连接,框架中没有使用keep-alive,那么网络异常断开...

toil
2015/03/09
311
0
小计使用多线程和gevent来提高celery性能及稳定性

前言: 有朋友问我,我那个任务队列是怎么实现,他的疑问其实主要是celery不支持多线程。先说说我那实现的方法,其实我的做法和celery、rq这样的框架很像的,都是把任务push到队列里面,然后...

rfyiamcool
2014/07/27
0
0
关于gevent的协程间通信及队列和事件event用法

前言: 今天就写点gevent的高级点的用法,对于我来说 这些也是常用的gevent模块。 gevent的AsyncResutl模块的用途,看字眼的意思是一个异步的任务的结果。 其实官方的说法也让人有些发蒙。 ...

rfyiamcool
2014/08/10
0
0
asyncio 的优势与缺点

环境假设 优势 对异步 IO 任务异常好使 编程模型更加简单,负担比较小: 利用 asyncio 拿到一个 event loop 然后往这个 loop 中塞东西(协程) 操作系统看到的仍然是单线程,但是从宏观角度看...

hezhiming
2017/11/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
2
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
2
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
0
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0
OSChina 周一乱弹 —— 有人要给本汪介绍妹子啦

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享水木年华的单曲《中学时代》@小小编辑 手机党少年们想听歌,请使劲儿戳(这里) @须臾时光:夏天还在做最后的挣扎,但是晚上...

小小编辑
今天
48
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部