Наш сайт https://go.kotelov.com/website_kotelov
Отправить CV hr@kotelov.com или 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
Никита Галушко, старший инженер VK
Почему высокопроизводительные системы написаны на Go?
Какой нужен процессор для многоядерной архитектуры?
Как писать структуры данных для управления высокопроизводительными системами?
Какие проблемы возникают в мьютексах?
Как правильно искать ответы на сложные вопросы в разработке?
Зачем вообще тогда нужен Go, если фатализация на ассемблере?
Что будет, если указать, на каком конкретном ядре запускать процесс?
C, Rust, Zic — свободные языки, а Go ограничивает разработчика?
Есть ли зависимость от операционной системы?
Где искать ответы и какие метрики собирать?
Блиц:
AMD или Intel?
Windows, Linux или Mac?
#интервью #Highload #финтех #айти #kotelov #котелов #ВалерийКотелов #kotelovpodcast