Асинхронный Python-код медленнее обычного кода! Ааа!!1один. Aiohttp VS синхронные фреймворки

Асинхронный Python-код медленнее обычного кода! Ааа!!1один. Aiohttp VS синхронные фреймворки

Диджитализируй!

4 года назад

91,539 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@d-mass-32
@d-mass-32 - 01.03.2021 11:20

Огромное спасибо за разъяснение!!! Ох уж эти холивары: придумывают синтетический тест, никак не соотносящийся с реальностью, получают какие-то результаты, не анализируют, а просто возводят в абсолют, и потом орут на весь мир, что это - гамно и это - гамно и мнение хрен оспоришь ! 😪

Ответить
@artemstroev3149
@artemstroev3149 - 15.05.2021 22:55

Очень захотелось увидеть результат Django на sleep 0,2

Ответить
@МаксимМаксимов-ч9т
@МаксимМаксимов-ч9т - 02.06.2021 21:15

Очень грамотный и доходчивый контент.

Ответить
@sh1maru
@sh1maru - 07.06.2021 13:03

Ой а что же будет, если wrk не в один поток запустить, а в 10

Ответить
@user-race-Vulcan
@user-race-Vulcan - 28.06.2021 14:15

Уже любому балбесу дают шанс понаписать ересь в Habr, какое отношение имеет однотипный никак не меняющийся запрос к программированию..., это во-первых, во-вторых если грамотно пользоваться общей памятью, а не пихать разными ядрами в конкурентный стек памяти ссылки на запрос, то получится что 4 ядра в 8 потоков будут примерно в 8 раз быстрее и в первом случае так же само как Уважаемый и любимый нами автор Диджитализируй показал в своем грамотном тесте...

Такие люди как автор с Habr вводят в глубокое заблуждение новичков, либо он просто купленный и идет тенденция как-то притормозить развитие асинхронки.

И на последок, самое главное, ребята, о каком н** синхронном программировании говорить в если чисто логически предел в 5 ГГц сверхсложная задача, а ядер напихать можно и 32 и тд, а если речь о промышленных масштабах, то там одаренные в программировании специалисты посмотрят на этого ЧСВ и максимум в пол-улыбки "параллельно" пойдут дальше по делам...

Ответить
@bolatmukashev2830
@bolatmukashev2830 - 03.07.2021 09:51

А можно видео про то чем отличается многопроцессинг, многопоточность и асинхронность?
С примерами на Python

Ответить
@vladanokhin
@vladanokhin - 06.07.2021 17:23

Круто, спасибо)

Ответить
@trankov
@trankov - 08.07.2021 06:51

Мне кажется, этот тот случай, когда надо чекнуть теорию раньше, чем практику. Очевидно же, что асинхронка это техника параллельного выполнения задач в ситуации избыточного времени ожидания. Соответственно, если просто осознать этот факт, то и тесты станут не нужны. Хотя для видео, естественно, живые тесты это очень круто.

Ответить
@artemshestak
@artemshestak - 08.07.2021 17:39

спасибо за подробное объяснение)

Ответить
@goodpins
@goodpins - 24.07.2021 13:02

картинка топ

Ответить
@slukinkostja2064
@slukinkostja2064 - 28.07.2021 23:49

Все вроде бы так, да есть один нюанс. Вы бы количество воркеров во тором тесте для синхронного кода раз в 10 увеличили бы. Глядишь результат интересней мог получился.

Ответить
@zzshek
@zzshek - 05.08.2021 14:08

спасибо

Ответить
@ernest.rakhmatulin
@ernest.rakhmatulin - 02.09.2021 13:53

🔥

Ответить
@yaroshchenko_creative
@yaroshchenko_creative - 12.09.2021 15:03

Хорошо что досмотрел а то уже расстроился.

Ответить
@vandriichuk
@vandriichuk - 06.10.2021 12:32

Спасибо за видео. А чем записываете экран когда пишете код, чтобы было прозрачно?

Ответить
@ДмитроМанжура
@ДмитроМанжура - 13.10.2021 14:18

Главный вопрос в том, почему все тестят запросы в базу. Кто ее тюнил? Этими тестами вы показываете скорость ответа движка базы на синхронные и асинхронные запросы. Наиболее правильным были бы проверки с обработкой данных в памяти(допустим математические операции), которые не связаны с внешними обьектами в виде бд.

Ответить
@nickolayyegorov4755
@nickolayyegorov4755 - 18.10.2021 14:13

Стоит добавить что на Питоне пишут не только веб) Помню в 2017 писал пайплайн обработки данных, там была куча операций "выполняемых" на бэкенде монго. Прототип написали синхронный, самый простой. Работало 11 часов.. Переписали на async подачу данных блоками - ох, оказывается за 45 минут все считается :) Как я перестал бояться и полюбил асинхронность :)

Ответить
@mandico21
@mandico21 - 26.10.2021 07:30

Как также перемещаться по файлам в Vim ?

Ответить
@googleadmin4749
@googleadmin4749 - 30.10.2021 16:15

Красавчик

Ответить
@vb3039
@vb3039 - 13.11.2021 23:11

Очень интерестно :)

Ответить
@evgenibasov9545
@evgenibasov9545 - 15.11.2021 01:25

Офигенно 👍

Ответить
@onischenkoviktor9519
@onischenkoviktor9519 - 13.02.2022 12:05

АПИ-Чапи

Ответить
@izzzanaaami
@izzzanaaami - 28.04.2022 13:03

Аиохттп - кровь из мозга

Ответить
@4cd99e
@4cd99e - 22.05.2022 19:07

Я думаю, что даже в примере, когда запрос долгий, можно сказать, что синхронный ВОЗМОЖНО будет быстрее. Стоит различить две ситуации: когда база данных находится на той же машине, что и сервис, и когда они разделены. Показанный пример - это пример, когда они разделены (запрос в бд не нагружает железо сервиса). Но если запрос в бд будет активно нагружать железо сервиса, асинхронные фреймворки не будут уже так себя комфортно чувствовать. Хотя много зависит от запроса: он может быть на чтение большого кол-во данных, а может на построение новой сложной структуры...

Ответить
@ВладимирПетров-г1я
@ВладимирПетров-г1я - 17.06.2022 09:03

Спасибо за труд! Смотрю с удовольствием.

Ответить
@gradovvladimir4315
@gradovvladimir4315 - 11.07.2022 09:29

Короче, понятно. Если в БД бардак, то асинк наше всё. Если нужна супер скорость - оптимизируй БД ✌️

Ответить
@РоманИгнатов-ж8с
@РоманИгнатов-ж8с - 12.07.2022 10:10

Короче, проще говоря, понимайте суть вещей ребята(для чего они создавались, для упрощения или ускорения каких ситуаций). В программировании всё придумывается на основе опыта. Понимая суть, включите голову, не понимая сути, идите получать опыт, чтобы её понять)

Ответить
@georgestatefield
@georgestatefield - 12.08.2022 09:34

Это видео было полезным, как и другие
Алексей - молодец!

Ответить
@sevashpun
@sevashpun - 20.08.2022 03:01

Спасибо за видео!

Ответить
@gnompirogov9259
@gnompirogov9259 - 16.09.2022 02:34

спасибо за подробный разбор

Ответить
@Anatolii_V_Novikov
@Anatolii_V_Novikov - 07.11.2022 11:01

Правильнее тестировать/измерять на реальном проекте, как есть. А синтетические тесты - как дополнение, на всякий случай (граничные случаи).

Ответить
@Иван-ь4ж5о
@Иван-ь4ж5о - 15.12.2022 04:21

На своей же машине тестить свою же машину на запросы, ну капец

Ответить
@zorik6470
@zorik6470 - 20.12.2022 14:50

Ребят, что такое воркер простыми словами? В этих гуглах какие-то сложные формулировки :(

Ответить
@drygdryg2
@drygdryg2 - 05.03.2023 20:37

Спасибо, очень интересно и полезно.
Было бы интересно увидеть тест с участием asyncpg вместо aiopg.
Также интересно, как правильно профилировать приложения, чтобы понимать, на что уходит больше всего процессорного времени: на ввод-вывод, либо на вычисления, и сколько на что из этого уходит.

Ответить
@КириллЧе-я5ы
@КириллЧе-я5ы - 08.03.2023 22:23

Если вы пишете высоконагруженный сервер - раст или плюсы имхо… переубедите

Ответить
@romanbush5164
@romanbush5164 - 31.03.2023 02:49

Разнес недоумка)))

Ответить
@InfernoAge
@InfernoAge - 30.06.2023 07:46

А почему тест скорости делается на записи в бд?
Следует помнить, что django вообще не асинхронный, разработчики последние несколько лет добавляют в него асинхронный функционал, но ядро так и осталось синхронным.
Сам питон ни разу не асинхронный: все эти якобы асинхронные "штучки" используют GIL (global interpreter lock).
И если уж сравнивать че то, то с чистым gil без фреймворков: последний быстрее.

Ответить
@sergeymironov7315
@sergeymironov7315 - 21.10.2023 13:09

Я верно понял по результатам тестов, что, прежде, чем выбирать между асинхронным и синхронным фреймворком, надо потестить максимальное время запроса к БД и уже от него отталкиваться?

Ответить
@AlexeyZubkov
@AlexeyZubkov - 06.12.2023 06:32

а как же PyPy?

Ответить
@user-cu2ej7qu6p
@user-cu2ej7qu6p - 13.12.2023 05:18

о чем гаварить, если у самих микрософт я видел питонский код полное дерьмо. все эти фласки и джанги написаны дегенератами. полная деградация инженеров

Ответить
@rybiizhir
@rybiizhir - 26.01.2024 17:38

Как ни крути - смешные цыфры, вшивый Rust будет быстрее всего этого на 2 порядка

Ответить
@АлександрКостромин-к4х
@АлександрКостромин-к4х - 22.08.2024 21:44

Спасибо большое дружище! Очень познавательно👍

Ответить
@margaritawin-win8976
@margaritawin-win8976 - 17.10.2024 15:35

короче все под задачу

Ответить
@andreypavlukov1192
@andreypavlukov1192 - 10.12.2024 02:06

Ты не реально грамотный, как и как долго нужно учиться чтобы преблизиться к твоим результатам? P.s. учусь на фулстак 3 года с нуля и чувствую семя делетантом от слова совсем

Ответить
@MistySlothGaze
@MistySlothGaze - 24.12.2024 22:00

а если микс?

Ответить
@Borisa-q7f
@Borisa-q7f - 03.03.2025 00:40

Благодарю

Ответить
@sanchous66bann
@sanchous66bann - 27.04.2025 17:57

В целом не верно сравнивать что быстрее так как правильная реализация имеет смесь подходов, т.е. как Алексей и сказал, потоки для CPU bound операций , а асинхроннщину для I/O bound , но так или иначе асинхроншина это must have в современных приложениях, поэтому Node.js наше всё 😂.

Ответить