169 похожих чатов

Чем отличается асинхронность построенная на манки-патчах в библиотеках gevent и

eventlet от стандартного решения asyncio? Будет ли заметна разница в производительности между схожими серверами flask+gevent.monkey.patch_all() и aiohttp или tornado?

3 ответов

20 просмотров

тем что async \ await это честная и явная кооперативная многозадачность, в отличие от gevent который патчит "все что движется". с последним соответственно есть нюансы, если используются например сишные библиотеки для IO, которые gevent пропатчить не может. кроме того еще есть неприятные сюрпризы связанные с внезапными переключениями контекста там где ты этого никак не ожидаешь ну и реализация построенная на низкоуровневой магии манипулирования питонячим стеком.

"от стандартного решения на asyncio" ЛОЛ gevent и eventlet появились когда в питоне еще никаких asyncio и даже tulip в проекте не было.

> Будет ли заметна разница в производительности между схожими серверами flask+gevent.monkey.patch_all() и aiohttp или tornado? зависит от многих факторов. в общем случае если нет жесткой необходимости завязываться на gevent (например легаси код) я бы рекомедовал asyncio как решение по-умолчанию. но ты для начала должен бы определиться нужна ли тебе асинхронность вообще (скорее всего не нужна)

Похожие вопросы

Обсуждают сегодня

Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
лучше скажите, причём тут паскаль?
Alexey Kulakov
23
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
#include <stdio.h> #include <stdlib.h> #include <time.h> int** generate_table(int size_matrix) { int** matrix = (int**)malloc(size_matrix * sizeof(int*)); for (int i ...
Чувак
1
@PerlBanjoBot use v5.38; sub split_on_cond($arr, $cond) { ($a, $b) = ([], []); push @{ $cond->($_) ? $a : $b }, $_ for @$arr; ($a, $b) } use Data::Dumper; warn Dumpe...
Sergei Zhmylove
10
Всем привет! как узнать, что текст в TSkLabel был выведен сокращенным ? Есть функция для TLabel которая позволяет определить , что текст выведен сокращенным function TFrmMai...
DELPHI SOLUTIONS
6
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
Дебил? Я ищу друга
Bitard 228
27
У меня это всегда вопрос вызывало.. Нафига писать код так, чтобы потом ошибки вылавливать?
Nik
44
Карта сайта