为什么tornado 和 gevent 组合起来会比原生 tornado 更快?


tornado 不是已经异步了吗, 为什么加上 gevent 后会更快?

提问来自于这篇 blog, 速度测试

gevent python tornado 异步

坂町近次郎 9 years, 7 months ago

原文说:


 从上面结果可能看出Tornado比Flask快很多. 而Gevent可以让Tornado更快一些, 但快不了很多.

我在别的文章里看到过这样的测试结论。既然快不了多少,不如不用。

keylito answered 9 years, 7 months ago

题主的疑问中,异步不一定就比同步的更快吧,这需要看具体应用场景。

相比较而言,如果不是并发,并且不是针对有阻塞的操作。同步和异步谁更快还不好说。

python 的并发技术中,大致是多线程,多进程,协程。可以参考下 这篇文章

tornado 可以异步也可以同步,具体还得看如何使用。

zengbug answered 9 years, 7 months ago

猜测是因为gevent是c的模块,而tornado封包重组,HTTP协议解析都是python写的,比如解析HTTP头用的是正则。。。
tornado-over-gevent 中 tornado 运行于 wsgi 模式,HTTP协议解析等工作就由 gevent 完成了。

宝剑捅菊花 answered 9 years, 7 months ago

Your Answer