Комментарии 8
Чтобы воспользоваться преимуществами asyncio, я использовал aiohttp вместо requests. asyncio — асинхронный эквивалент requests со схожей функциональностью и API.
Опечатка? Наверное aiohttp это эквивалент?
+1
А это специально для каждого запроса своя сессия открывается? Общая сессия — залог более быстрой работы.
Кроме того надо учитывать особенности библиотек при коннекте к одному серверу. У вас 100 запросов — это как раз предел для aiohttp (при общей сессии).
Также сервер может использовать ограничение одновременных коннектов. Если у вас, скажем, максимум 5 одновременных скачиваний, то, скорее всего, полноценной одновременности не получится. Для более чистого теста, может быть, использовать просто чтение из файла?
Также интересно было бы сравнить с PyPy — может быть там свои особенности?
Кроме того надо учитывать особенности библиотек при коннекте к одному серверу. У вас 100 запросов — это как раз предел для aiohttp (при общей сессии).
Также сервер может использовать ограничение одновременных коннектов. Если у вас, скажем, максимум 5 одновременных скачиваний, то, скорее всего, полноценной одновременности не получится. Для более чистого теста, может быть, использовать просто чтение из файла?
Также интересно было бы сравнить с PyPy — может быть там свои особенности?
0
задачи активно использующие ЦП, такие как обработка изображенийстранно, что multiprocessing вообще не упомянут
0
asyncio это не "параллельная обработка"
-1
Ну если смотреть формально, то потоки тоже не параллельные в питоне (CPython и тп).
0
Это формальная параллельность или псевдо-параллелизм. Даже множество запущенных процессов с одноядерным процессором концептуально не отменяет параллелизм. А вот асинхронность (acyncio) никак не параллелизм. Дело в переводе, в оригинальной статье (да и в офф документации) acyncio описан как concurrency. А конкурентность и параллельность это разные вещи. Можно почитать: https://m.habrahabr.ru/company/piter/blog/274569
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Эффективное использование памяти при параллельных операциях ввода-вывода в Python