Feb 17 2025 36 mins 6
Наш сайт https://go.kotelov.com/website_kotelov
Отправить CV [email protected] или https://kotelov.com/hr/
Как VK проектирует код для многоядерных систем? Вроде все ресурсы CPU в твоём распоряжении, но код все равно работает медленно.
На Highload++ мы поговорили с Никитой Галушко, старшим инженером в VK — о том, как правильно работать с многопоточностью и многоядерными системами и почему чаще всего хваленный go мешает, а не помогает, если у тебя сотни тысяч соединений и 56 ядер.
— как выжать максимум из процессора?
— как распределять потоки по ядрам?
— как перехитрить ограничения в Go?
— можно ли управлять ядрами напрямую?
📌Смотри, что нашел -- тг-канал Никиты https://t.me/b1tw1se
📌 Ссылки на доклады Никиты:
Секреты высокой производительности в многоядерных системах ☠️ https://golangconf.ru/moscow/2024/abstracts/13125
Выжимаем из Go максимум производительности https://www.youtube.com/watch?v=QMC9Kg4Ogxg
📌Что обсуждали
Ссылка на пейпер BRAVO https://arxiv.org/pdf/1810.01553
Реализация BRAVO на Go https://github.com/puzpuzpuz/xsync
Интересные пейперы (тот самый аккаунт в X) https://x.com/pvldb
00:00 Никита Галушко, старший инженер VK
01:42 Почему высокопроизводительные системы написаны на Go?
03:46 Какой нужен процессор для многоядерной архитектуры?
08:03 Как писать структуры данных для управления высокопроизводительными системами?
09:29 Какие проблемы возникают в мьютексах?
18:00 Как правильно искать ответы на сложные вопросы в разработке?
21:53 Зачем вообще тогда нужен Go, если фатализация на ассемблере?
24:23 Что будет, если указать, на каком конкретном ядре запускать процесс?
25:31 C, Rust, Zic — свободные языки, а Go ограничивает разработчика?
28:41 Есть ли зависимость от операционной системы?
29:49 Где искать ответы и какие метрики собирать?
34:43 Блиц:
AMD или Intel?
Windows, Linux или Mac?
#интервью #Highload #финтех #айти #kotelov #котелов #ВалерийКотелов #kotelovpodcast