God-tier программисты нашей эпохи

preview_player
Показать описание
Скидка 45% + курс по нейросетям бесплатно по промокоду WINDERTON

Привет!

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Контент из видео:

Люди упомянутые:

Кейси Муратори
Майк Эктон
Джон Кармак
Фабьян Гессен

Если чего-то не нашли, пишите комент, я добавлю.

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Подпишись:

▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Музыка:

jeff cadoni - so many meanings
SLYNK
Рекомендации по теме
Комментарии
Автор

06:00 - ошибки при проведение замеров: 1) не прогрел кэши путем вызова функци до замеров, 2) измерение провел одним наблюдением (необходимо проводить множественные наблюдения и выполнять статистическую обработку, 3) перед измерением необходимо подготовить рабочий стенд (хотябы выключить все фоновые программы, а лучше еще и зафиксировать настройки аппаратной платформы - иначе рискуете получать лучшие результаты на бусте процессора и худшие на его базовой частоте и получить неверный результат). Это все придирки, если вы наносекунды выдрачиваете (что эквивалентно единицам, десяткам и сотням тактов процессора), а не миллисекунды (что уже миллионы и миллиарды тактов процессора).

rtgiyrefbgowigi
Автор

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

haterk
Автор

Очень хорошее названия для видеоролика, сразу описывает его суть!!!
Спасибо вам, что тратите столько сил, что бы делать контент для подвальных детей Дагестана!!!

chertiloid
Автор

04:00 - автор дает неверное понимание (вывод) обсуждаемой им скорости операции сложения двух целых чисел: именно скорость сложения (как код на языке ассемблера, выполняющий сложение двух целых) не отличается. Отличается здесь количество инструкций, предшествующий операции сложения и контекст выполнения. Для C-программы это попадание в точку входа программы, загрузка операндов, выполнением операции и выход из программы. Для Python же между точкой входа программы (а она обязательно есть) и загрузкой операндов происходит исполнение части программы, интерпретирующей язык. Т.е. в скорости сложения отличий-то нет, есть отличия скорости работы программы в целом, т.к. С-программа уже собрана для выполнения на процессоре одной операции, а Python-программа runtime интерпретируется из исходного текста программы, доходит до операции и выполняет ее. Неверно утверждение для питона про "сотни инструкций чтобы сложить a+b". Верно будет "сотни инструкций, чтобы добраться до сложения a+b"

rtgiyrefbgowigi
Автор

Ускорил циклы на 10%, сэкономив 30 мс, а потом оказалось, что запрос в базу выполняется секунду(

BeefBif
Автор

"команда выполняется за один герц" -- чувак, ну это непростительно. Кто-то из зрителей так и запомнит теперь. После этого дальше смотреть как-то не хочется, если на уровне школьной программы такие траблы, как верить всему остальному

crimfi
Автор

Вот это уже очень интересно.
Need for Speed: Undercode

TigerRUS
Автор

В энтэрпрайс программировании скорость выполнения не имеет значения, важна только надёжность. Если использованы правильные алгоритмы конечно. С текущими микросервисными ландшафтами большую часть времени комп будет ждать передачи данных в любом случае. Кстати, преждевременная оптимизация - корень зла. Такие дела, калики. Дееем дальш.

goldsucc
Автор

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

danilavoronkov
Автор

Я практикую кэширование как локальность данных (случайно на блочном умножении матриц получил х10 скорости на ноутбучном сандике а на хорошем железе +70% скорости и это последоватльные вычисления были) а не запоминание ответов так как поиск ответа может быть дольше чем посчитать его снова! Разбивание циклов дает прирост пару процентов на практике (если тела цилов похожи отличались например массивом на котором чтото считали и тп) Switch побеждает if если цепочка условий длиннее 5-7 но только если часто выполняются не первые два if цепочки Вызовы функций занимают время только если функция маленькая и ее вызывают больше 10 миллионов раз На 100 миллионах разница уже 2-3 секунды (между #define и просто функцией и где-то 1.5 между define и inline)

vadimmatskevich
Автор

9:10 На канале Casey Muratori всего 19 видео, по каким его работам учился?

ivanprokofyev
Автор

12:08 вообще-то обороты скорее сбавляются. Это в 80-х выжимали из железа максимум.

tldr_rm_-rf
Автор

6:20 только забыл упомянуть, в реальном коде никогда так делать не надо, это не имеет никакого смысла, у тебя есть компилятор и это его работа оптимизировать твой код, и по факту если посмотреть на все 3 варианта в том же godbolt, то по факту вывод в ассебмлере будет одинаковый, так как компилятор сделал оптимизацию и выбрал самый эффективный вариант, а тот который ты написал стал менее понятным

sat_shc
Автор

0:43 Нет, инструкция не обрабатывается за 1 Герц (1 Раз в секунду) при тактовой частоте процессора 3 Гигагерца раз в секунду). И тем более 1 Герц (1 раз в секунду) не может быть быстрее 200 Герц (200 раз в секунду). По сути, автор сказал, что более сложная операция выполнялась бы 200 раз за время простой операции. 1 секунда не быстрее 0.005 секунды. Такой вот trouble 😅.

kosar
Автор

Я искренне надеюсь, что люди после этого видео не начнут вводить такого рода оптимизацию с сложением чисел с помощью 128б регистров в свои программы. В 99% случаев для конечного потребителя ( клиента или бизнеса, без разницы) никакой пользы для этого не будет, а нам, потом этот код поддерживать.
Пример с гуглом и 1% производительности == лярд долларов -- не состоятельный. Потому как если бы люди запаривались над этим 1 процетом, то написали бы меньше кода, соответсвенно компания бы запустила меньше продуктов, и получила меньше прибыли.
В остальном тема действительно интересная только в каких-нибудь аспектах где это действительно может потребоваться, там где используются большие массивы данных. Например при обучении или использовании нейронок. Вот действительно хороший пример, который показывает насколько важна оптимизация.
А вообще осуждение за название видеоролика, очевидный кликбейт.

alexeiskipetrov
Автор

я думал это видео про rust, ведь он имеет ⚡blazingly✨fast 🦀performance🔥

dinazavrprk
Автор

В анрил энжоне в ниагаре для частиц выбираются разные алгоритмы, если алгоритм не динамичный то он сделает сам все кэши.
Например если было указано что эммитер живет 5 сек и он создает 20 частиц каждую секунду, а частица живет 0.2 сек то система сама посчитает сколько одновременно частиц будет максимально и выделит ровно столько памяти.

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

gendalfgray
Автор

В реальном мире 99.9% проблем с производительностью лежат на совершенно другом уровне; микрооптимизации валидны только в том случае, если ты досконально знаешь целевую платформу и уверен, что компилятор этого не умеет. Те же векторные инструкции иногда с лихвой нивелируются планировщиком проца. неудачный loop unrolling может сломать спекулятивное исполнение и снизить перформанс. Современные процы на столько сложные, "умные" и разные, что нет какого то общего рецепта на микрооптимизации. Возможно один из самых универсальных советов - попытаться поместить данный в L1 кэш, и работать с ними эффективными алгоритмами. остальные трюки - это больше баловство.

EgorFrade
Автор

10:36 кэширование для флотов)))

хех

hate_winter
Автор

5:16 тут, видимо, опечатка, в правом примере забыл убрать, собственно, цикл.

vryaboshapko
join shbcf.ru