TGViewer
Типичный программист Типичный программист @tproger · 78.3K subscribers
Post #14625 9.21K
Сколько ветвлений ваш процессор держит в голове

Код на тестах летит, а в проде тормозит, и вы уже не первый раз смотрите на профайлер? Причина не всегда в алгоритме: CPU пытается угадать, куда пойдёт выполнение по if.

Дэниел Лемайр собрал бенчмарк, который мерит ёмкость предсказателя ветвлений. Цикл пишет число в буфер, если оно нечётное. Случайные данные дают промах за промахом. Повторяющийся паттерн CPU запоминает и летит.

Разные чипы, разный лимит. AMD Zen 5 держит около 30 000 ветвлений, Apple M4 тянет 10 000, Intel Emerald Rapids укладывается в 5 000. Разброс в шесть раз.

Мне кажется, главная ценность здесь не в цифрах, а в угле. Ветвление — не бесплатная операция, а ресурс с лимитом. Если ваш прод ведёт себя не как тесты, причина может быть именно здесь. Разбор и код Лемайра: погоняйте на своём железе и проверьте, угадает ли ваш процессор.
  • ✍ 19
  • 👍 14
  • 👏 3
  • 🤝 3
  • 🍓 2
  • 😨 2
  • 👾 2
  • 🤷‍♂ 1
  • 😢 1
  • 👻 1
  • 🙊 1
More from @tproger
  1. Sep 20, 2026Как повторное использование ReverseProxy ускорило прокси на Go в 3,8 раза Автор нагрузил с…
  2. Sep 20, 2026Мы вернулись из Суздаля с новым взглядом на магазин у дома Были на tech-туре MAGNIT TECH «…
  3. Sep 19, 2026Вопрос на разогрев: что из этого появилось раньше — ICQ, MySpace или Nokia 3310? Если заду…
  4. Sep 19, 2026Почему тип указателя не гарантирует безопасность памяти Указатель сохраняет тип, даже когд…
  5. Sep 19, 2026В Суздаль за DevOps Недавно мы съездили на «Без предела: Исходный код ритейла» от MAGNIT T…
  6. Sep 18, 2026Как Cloudflare освободила 100 ТБ памяти в DNS-кеше 1.1.1.1 Big Pineapple за сервисом 1.1.1…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →