Григорий Петров - Почему Python медленный?

  Рет қаралды 15,904

Evrone Development

Evrone Development

Күн бұрын

Подписывайтесь на наш канал здесь и в телеграмм t.me/meetups_evrone, чтобы быть в курсе будущих митапов и не пропускать полезные доклады!
Григорий Петров, DevRel - Evrone
Всего двадцать лет назад мир был простой и понятный. Python, Ruby и PHP были "скриптовыми", "интерпретируемыми" языками. А C++ и Java "компилируемыми, поэтому в сотни раз быстрее". А сейчас, в 2021 году, "задача четырех тел" решается на C++ всего лишь в два раза быстрее, чем на JavaScript. Но все так же в сотни раз быстрее, чем на Python или Ruby. Звучит несправедливо, и есть много хороших докладов, отвечающих на вопрос "что делать" и как обмазать все PyPy, Numba и Cython. Я же расскажу о том, "кто виноват": про компиляторы, байткод, ceval.c, виртуальные машины, JIT, нативные расширения и всё то, из-за чего мы вынуждены слышать обидное "Python медленный".
00:00 - Введение
01:07 - Что сейчас будет?
02:19 - Как работает CPU?
04:05 - Скорость = инструкции/время
06:15 - Скорость = память
08:37 - Кому можно поручить заботу о памяти?
14:10 - Почему Python тормозит, а Rust не тормозит?
19:38 - Как работает виртуальная машина Python
20:37 - Почему JS JIT быстрый, а Python JIT нет
24:34 - Путь Python
25:46 - Завершающая речь

Пікірлер: 66
@7IdE
@7IdE 3 ай бұрын
Блин, обожаю этого чувака: настолько интересно рассказывать - это прям мощно. А вот за уточнение, что Питон это НЕ интерпретируемый язык, хочется выразить отдельный респект. А то слишком много людей развелось, которые считают, что это интерпретируемый язык.
@ivormacky5078
@ivormacky5078 Ай бұрын
Компилятор питона в студию!
@user-dj4np3gg9y
@user-dj4np3gg9y Жыл бұрын
Григорий написан на пайтоне , из за этого он медленный
@MrTrevolta
@MrTrevolta 2 жыл бұрын
На скорости х1,25 вообще огонь смотреть. Рекомендую.
@id0ntmindzz865
@id0ntmindzz865 3 ай бұрын
1.33 выделил для себя как идеальную скорость для любых роликов, вдруг поможет
@pythonbeginnerr
@pythonbeginnerr 2 ай бұрын
Это вы еще х2 не пробовали)
@true_ivansanin
@true_ivansanin 2 жыл бұрын
Спасибо вам большое, Григорий! Надеюсь, однажды мы с вами поработаем в команде)
@oghry
@oghry 2 жыл бұрын
Очень интересный доклад. Спасибо
@gobpblueex
@gobpblueex Жыл бұрын
Отличный доклад, спасибо, очень интересно и, что нетипично, понятно!
@DonatIvanov
@DonatIvanov Жыл бұрын
Большое спасибо за Ваш доклад. Очень емко, по делу и без воды! Посмотрел с огромным интересом. Единственное, не понимаю, почему выбрали такой ракурс для съемки - непривычно. Крупный план лица (его было мало) приятнее наблюдать, чем ноги.
@user-sq4yd3fg4k
@user-sq4yd3fg4k 2 жыл бұрын
Обожаю ваши подкасты!
@user-dn7qr7vs1h
@user-dn7qr7vs1h 2 жыл бұрын
Григорий как всегда на высоте!
@ostvsvl7712
@ostvsvl7712 2 жыл бұрын
в топ ютуба!)
@nikvacuol5711
@nikvacuol5711 Жыл бұрын
можете посоветовать ресурсы, где можно прочитать про совместимость ЯП?
@domeno8525
@domeno8525 2 жыл бұрын
Топовый доклад.
@tankowot
@tankowot 2 жыл бұрын
На первом этапе не важно сколько выполняется бизнес задача 0.1 сек или 2 сек, главно что бы она уже работала и приносила прибыть.
@MrFrimko
@MrFrimko Жыл бұрын
т.е. в дотнете и джаве нет виртуальной машине? интересная новость!
@MrFrimko
@MrFrimko Жыл бұрын
как удобный синтаксис влияет на скорость языка? в сишарпе каждые пол года с десяток новых синтаксических фичей завозят. в плюс количество синтасисовых фич вообще не поддается исчеслению
@MrFrimko
@MrFrimko Жыл бұрын
столько джунов смотрит григория, а он такую дичь заливает(
@mexico76
@mexico76 8 ай бұрын
Отличное видео для того что бы опять словить эффект самозванца). Радует то что мне хоть маленечко что-то понятно, но это не точно. Слушать спикера очень приятно. Спасибо!)
@EvroneDevelopment
@EvroneDevelopment 8 ай бұрын
Вам спасибо!
@user-ne4bd3ry1n
@user-ne4bd3ry1n 8 ай бұрын
первый раз слышу что ядра одного процессора работают последовательно. Где бы почитать про это? очень интересно.
@alexf3289
@alexf3289 8 ай бұрын
Нигде, это бред.
@user-hg4to3df3s
@user-hg4to3df3s 6 ай бұрын
Интересно зачем делать тогда многоядерные процессоры если все стоят, а один работает. Не знал, что ядрам надо отдыхать, причем если исходить из слов Григория, то чем больше ядер тем они менее эффективны, в 64 ядерном получается ядро работает лишь 1/64 от всего времени. Редкая дичь
@user-ne4bd3ry1n
@user-ne4bd3ry1n 6 ай бұрын
@@user-hg4to3df3s скорее автор имел ввиду, что ядра многоядерного процессора начинают работать не синхронно по к.л. причине.
@user-hg4to3df3s
@user-hg4to3df3s 6 ай бұрын
А тактовые импульсы после умножителя он значит еще раз дробит для каждого ядра? Это еще большая чушь. Давайте прикинем, после умножителя скажем имеем 3 ГГц, далее 32 ядра, которые по вашему запускаются не сразу (но они должны же быть синхронизированы с теми же регистрами и тд?) значит после прихода первого импульса на 3 ГГц он дробится для всех ядер в 32 последовательных импульса, те ядро получает импульс с частотой примерно 90ГГц. Да вам нобелевку надо дать
@user-fi9rw4vx2b
@user-fi9rw4vx2b Жыл бұрын
А где и когда Java потеряла свою виртуальную машину?
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 жыл бұрын
Посоветуйте литературу по железу, ос. Такую чтобы базовая была, качественная.
@addressmodel2121
@addressmodel2121 6 ай бұрын
Программисту по железу надо знать примерно следующее: Все регистры всех устройств на материнской плате отображаются в определённые диапазоны адресов адресного пространства любого процесса. Любой процесс может находиться в двух состояниях: 1) в исполнении пользовательского кода, то есть кода приложения; 2) в состоянии "нырка" в режим ядра и исполнении кода ядра. Во втором пункте исполняется код операционной системы и драйверов устройств, которые являются частью операционной системы после их запуска. Регистры всех устройств на материнской плате доступны только когда процессор находится в состоянии 2 (то есть в режиме ядра). Адреса регистров конкретных устройств на материнской плате можно посмотреть через служебное приложение "диспетчер устройств". Нырок процессора в состояние ядра обычно производится по аппаратному прерыванию от системного таймера, в обработчике которого расположен код перевода процессора из режима исполнения кода приложения в режим исполнения кода ядра. Обычно интервал срабатывания такого таймера составляет примерно 0.01 секунды (10 миллисекунд). Но, сразу скажу, что 99% программистов эту всю историю с таймерами, прерываниями и регистрами устройств знать необязательно, так как никогда и нигде они ни с чем подобным не столкнутся в реальной практике прикладного программирования.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 6 ай бұрын
@@addressmodel2121 я литературу просил
@addressmodel2121
@addressmodel2121 6 ай бұрын
@@Das.Kleine.Krokodil , литературу? - Нормальной литературы по этой теме нету. Кое что есть из области разработки драйверов. Найдите в интернете что то типа Windows Driver Model (WDM), вроде там болталась пара тоненьких книжек. Ещё вроде бы болталась книжка "Драйвера сетевых устройств"., автора точно не помню, то ли Олифер, то ли ещё кто то. В общем, тема драйверов не популярная и конкретно хорошей литературы нету. Если вам интересна эта тема, то собирайте инфу по крупицам. Ройтесь по всему интернету.
@user-dn6vv9qd4w
@user-dn6vv9qd4w 2 жыл бұрын
В Евроне реально крутые пацаны!!!
@LebbLebb
@LebbLebb Жыл бұрын
Что за дизайнер работал? Я в восторге
@mvo5450
@mvo5450 7 ай бұрын
Если бы Григорий записал 100 докладов - я бы послушал их все.
@ruslandad365
@ruslandad365 Жыл бұрын
Давайте На Ассемблере Писать Он самый быстрый в мире🤣🤣🤣
@EdwVee
@EdwVee 2 жыл бұрын
В смысле ядра работают последовательно? Тогда несколько ядер должны работать как одно.
@grigoryvp
@grigoryvp 2 жыл бұрын
Нет конечно. У вас 16 ядер. Сначала работает первое. Потом второе.... Потом 16-е. Затем снова первое. И так 3 миллиарда раз в секунду. Для вас, как пользователя и программиста 16 ядер работают одновременно на частоте 3 гигагерца) Но ни одно из них на самом деле не работает действительно ОДНОВРЕМЕННО с другим. Относительно друг друга они работают последовательно.
@user-lh6ou6de6l
@user-lh6ou6de6l 2 жыл бұрын
@@grigoryvp всё ещё непонятно. А если ядро одно? Почему оно не может работать 16*3млрд раз в секунду? Т.е. импульс сначала первый раз идёт на ядро, потом второй раз, потом третий - шестнадцатый и так далее 16 млрд раз в секунду?
@grigoryvp
@grigoryvp 2 жыл бұрын
@@user-lh6ou6de6l Нагрев :(
@user-lh6ou6de6l
@user-lh6ou6de6l 2 жыл бұрын
@@grigoryvp эх так и думал, но надеялся на что-то более интересное. Спасибо! Забавное, конечно пространственное распределение нагрева
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 2 жыл бұрын
@@grigoryvp т.е. много ядер только для избегания нагрева? это по типу как Картечница Гатлинга?
@qrthack3233
@qrthack3233 2 жыл бұрын
Гриша, Питон или Руби для бэка?)
@ufocoder
@ufocoder 2 жыл бұрын
Гриша
@qrthack3233
@qrthack3233 2 жыл бұрын
@@ufocoder чудик
@alxvseti
@alxvseti Жыл бұрын
@@paxpax1707 Гриша - это что?
@sv3163
@sv3163 Жыл бұрын
⁠@@alxvsetiГриша - это «КТО». ТС дал на выбор 3 сущности, люди голосуют за Гришу, для бэкенда 😁👍
@glebdanichev9956
@glebdanichev9956 6 ай бұрын
бесит уменьшительно ласкательные
@user-jx8jl7nc3j
@user-jx8jl7nc3j 2 жыл бұрын
Это такая особенность - выглядеть на всех докладах в одном и том же (одежде)?)) С десяток докладов - стиль одинаковый.
@sergeime5407
@sergeime5407 9 ай бұрын
Это как советский инженер, в 25 и 40 лет в паспорте фотка в том же самом костюме.
@user-md2fk3jj1e
@user-md2fk3jj1e 3 ай бұрын
авто не компетентен и как ни странно плохо понимает о чем говорит. особенно про go, сам осознает, что это контрпример его тезисов, но чтобы не сыпаться придумывает оправдания про хип и стек, типа в руби или питоне его нет. удивительно что он сделал столько однотипных докладов на одну и ту же тему и ему никто не объяснил его ошибки, да и просто не сказал что он не прав, ведь под его утверждениями нет даже какой-то внятной основы.
@user-kw7gi6ok7h
@user-kw7gi6ok7h Ай бұрын
такие выступления, нацелены на "джунов", "мидлов" (сомнительно) - как кстати и сказал докладчик, от этого все так поверхностно и неточно ощущается
@user-md2fk3jj1e
@user-md2fk3jj1e Ай бұрын
@@user-kw7gi6ok7h тут не в уровне слушателя дело, а в уровне докладчика. он не понимает темы, видимо весь его опыт это питон и руби, по этому у него нет ни малейшего понятия что там в vm, отсюда и такой результат вцелом.
@user-kz7fh9js3z
@user-kz7fh9js3z Жыл бұрын
зачем сегодня python вообще нужен, если есть Go? Только тянуть старые проекты ...
@redneck_prm5429
@redneck_prm5429 11 ай бұрын
Гошка всё-таки нишевая штука, в первую очередь заточенная под настоящий хайлоад. А для сложной бизнес-логики при отсутствии большой нагрузки питон сильно лучше подходит.
@linuxoidovich
@linuxoidovich 9 ай бұрын
А зачем вообще гошка, когда есть C++ ?
@user-kz7fh9js3z
@user-kz7fh9js3z 9 ай бұрын
@@linuxoidovichc++ сложен в разработке и поддержки существующего ПО. Он требует кратно большие усилия чем Go. Rust видимо подходит всем)
@user-kz7fh9js3z
@user-kz7fh9js3z 9 ай бұрын
@@redneck_prm5429 питон уже устарел и довольно многословен. Нет у него перспектив, как мне кажется
@mihax56
@mihax56 8 ай бұрын
както больно резко был переход от кешей к "управлению" памяти в языках - как это вообще связано? и как компилятор то влияет на эффективность работы с кешем? насколько будет эффективная работа с памятью и кешами определяется исключительно тем, какие структуры данных (читай сколько указателей надо разыменовывать чтоб к ним добраться) и если программист об этом не думает, а он об этом не думает т.к. сложность бизнес логики заставляет забить на это болт, компилятор ничем не поможет. а видимая "эффективность" программ на плюсах заключается в том, что программист имеет возможно меньше дрочить аллокаторы памяти, что является самым тормозным звеном в любой современной программе.
1 класс vs 11 класс  (игрушка)
00:30
БЕРТ
Рет қаралды 2,2 МЛН
Super gymnastics 😍🫣
00:15
Lexa_Merin
Рет қаралды 54 МЛН
🍟Best French Fries Homemade #cooking #shorts
00:42
BANKII
Рет қаралды 51 МЛН
Что произошло в мире Python за 2023 год
46:29