使用协程后出现性能问题,代码很简单,如官方文档:
class MainHandler(tornado.web.RequestHandler):
@tornado.gen.coroutine
def get(self):
httpClient = tornado.httpclient.AsyncHTTPClient()
yield httpClient.fetch('http://google.com/', method = 'GET')
Run Code Online (Sandbox Code Playgroud)
测试命令为:
wrk -t12 -c400 -d30s http://10.0.0.10:2002/
Run Code Online (Sandbox Code Playgroud)
我每秒只能收到 66 个请求,如果我删除httpClient.fetch(),我每秒可以收到 1659 个请求。Tornado 在 E5-2666 v3 @ 2.90GHz 上运行单个进程,该进程的 CPU 使用率全部为 100%。
我正在使用 Tornado v4.4.1,python 2.7。