因此,这两个库具有相似的理念和相似的设计决策。但是这个流行的 WSGI 基准测试说eventlet
比gevent
. 是什么让他们的表现如此不同?
据我所知,它们之间的主要区别是:
gevent
有意依赖并耦合到libev
(libevent
, 之前的),同时eventlet
定义了独立的反应器接口并使用 , 和 Twisted reactor 实现特定select
的epoll
适配器。额外的反应器接口是否会影响关键性能?gevent
主要用 Cython 编写,而eventlet
用纯 Python 编写。对于计算量不大但受 IO 限制的程序,本机编译的 Cython 是否比纯 Python 更快?gevent
模拟标准库接口的原语,而的eventlet
原语与标准不同,并提供额外的层来模拟它。额外的仿真层会eventlet
变慢吗?只是执行
eventlet.wsgi
比差gevent.pywsgi
吗?
我真的很想知道,因为它们对我来说总体上看起来很相似。