使用eventlet之后反而性能更差的一组测试例子,求解为什么是这样?,eventlet求解,刚刚了解到这个类库,据说
使用eventlet之后反而性能更差的一组测试例子,求解为什么是这样?,eventlet求解,刚刚了解到这个类库,据说
刚刚了解到这个类库,据说是个并发网络场景下非常高性能的模块
我自己写了个代码做了个测试,反而比直接使用多threading SocketServer模块更慢,是我用的有问题吗?求高手指教
我做了4组测试,分别是服务端使用/不使用eventlet 客户端使用/不使用eventlet的组合测试,结果是都不使用eventlet的一组情况最好,还请各位指教~
服务端代码
#import eventlet#eventlet.monkey_patch()#from eventlet.green import SocketServerfrom SocketServer import TCPServer,StreamRequestHandler,ThreadingMixIn,UnixStreamServer,BaseServerimport osclass myserver(ThreadingMixIn, TCPServer):#class myserver(ThreadingMixIn, UnixStreamServer): request_queue_size = 8192 allow_reuse_address = True def _remove_socket(self): pass try: os.remove(self.server_address) except OSError: pass def server_bind(self): #self._remove_socket() TCPServer.server_bind(self) def shutdown(self): TCPServer.shutdown(self) self.server_close() self._remove_socket()class requesthandler(StreamRequestHandler): def handle(self): req = '' while True: chunk = self.rfile.readline() if not chunk: break req += chunk if chunk == '\r\n': break data = 'Hello World\r\n' self.wfile.write('HTTP/1.1 200 OK\r\nContent-Length: %d\r\n\r\n%s'%(len(data),data))def main(): #addr = './123.sock' addr = ('127.0.0.1', 81) try: server = myserver(addr,requesthandler) print server server.serve_forever(0.1) except KeyboardInterrupt: server.shutdown()main()
客户端代码
#import eventlet#eventlet.monkey_patch()import threadingimport blist,socketjobs = blist.blist([])def a(): for i in xrange(100): s = socket.socket() s.connect(('127.0.0.1',81)) #s = socket.socket(socket.AF_UNIX) #s.connect('./123.sock') s.sendall('\r\n') data = '' ret = s.recv(1) while True: if ret: data += ret ret = s.recv(1) else: s.close() break cc = 300 for i in xrange(cc): jobs.append(threading.Thread(target = a))for i in xrange(cc): jobs[i].start()for i in xrange(cc): jobs[i].join()
编橙之家文章,
相关内容
- db.session.commit()的时候抛出sqlalchemy.exc.IntegrityError错误?
- Flask-admin 中如何把两个关联的Model在同一个View中显示在
- 想做一个“去哪儿”那种垂直搜索的在线工具,应该选
- uwsgi配置导致500错误,提示no python application found,uwsg
- 11w行的excel用python pyodbc读后写入sqlserver,11wpyodbc,#根据
- 用nginx+uwsgi+python+flask/django部署3个web,使用supervisor监控
- BAE,SAE一类平台哪些能支持安装python第三方C扩展的?,
- 有没有将真人大头照片转换成卡通风格头像的软件,或
- [web.py问题]如果python bin/app.py 可以实现网站的上线,那
- SVN post-commit hook 出错,svnpost-commit,当我Commit时,提示
评论关闭