Эти две библиотеки разделяют аналогичную философию и аналогичные проектные решения в результате. Но этот популярный тест WSGI говорит, что eventlet
работает медленнее, чем gevent
. Что отличает их производительность?
Как я знаю, ключевые различия между ними:
-
gevent
преднамеренно зависит от иlibev
(libevent
, ранее), аeventlet
определяет независимый интерфейс реактора и реализует конкретные адаптеры с использованиемselect
,epoll
и витой реактор за этим. Имеет ли дополнительный интерфейс реактора критические характеристики? -
gevent
в основном написан в Cython, аeventlet
написан на чистом Python. Изначально компилируется Cython так быстро, как чистый Python, для не очень-вычислительных, но IO-связанных программ? -
Примитивы
gevent
эмулируют интерфейсы стандартных библиотек, в то время как примитивыeventlet
s отличаются от стандартных и предоставляют дополнительный уровень для эмуляции. Повышает ли дополнительный уровень эмуляцииeventlet
? -
Является ли реализация
eventlet.wsgi
хуже, чемgevent.pywsgi
?
Мне действительно интересно, потому что они в целом выглядят так похожими для меня.