TGViewer
Rust Rust @rust_lib · 2.24K subscribers
Post #314 1.71K
🥶 Холодный расчет: #[cold] и likely

Компилятор Rust (LLVM) очень умный, но иногда мы знаем о поведении программы больше, чем он. Мы можем подсказать ему, какая ветка кода будет выполняться чаще.

1. Атрибут #[cold]
Идеально для обработки ошибок. Вы говорите компилятору: "Сюда мы будем заходить крайне редко".
Компилятор сдвинет этот код в "дальний угол" бинарника, чтобы "горячий" путь шел линейно в памяти (это улучшает работу кэша инструкций и BPU).

#[cold] // <-- Подсказка
fn handle_fatal_error() {
// Логирование, паника, сложная логика...
}

fn process(data: &str) {
if let Err(_) = parse(data) {
handle_fatal_error(); // Компилятор знает, что это маловероятно
return;
}
// Happy path идет дальше линейно
}




2. likely / unlikely (Nightly / Crates)
В стабильном Rust пока нет std::intrinsics::likely, но есть крейт likely или хаки. Это прямая инструкция процессору через LLVM.

// С крейтом `likely`
if likely(x > 0) {
// Оптимизатор будет строить код так,
// будто это условие почти всегда true
}



Используйте #[cold] для ошибок и граничных случаев. Это стабильно, бесплатно и делает код чище.

#rust #optimization #llvm #hints

👉 @rust_lib
  • 👍 16
  • ✍ 2
  • 🥰 2
  • ❤ 1
  • 🔥 1
  • 🤗 1
More from @rust_lib
  1. Sep 24, 2026🥶 Холодный расчет: #[cold] и likely Компилятор Rust (LLVM) очень умный, но иногда мы знае…
  2. Sep 21, 2026🔮 Ты не пройдешь: Магия предсказателя ветвлений Вы когда-нибудь задумывались, почему обра…
  3. Sep 17, 2026🗝 Турбируем HashMap Стандартный std::collections::HashMap в Rust использует алгоритм хэши…
  4. Sep 16, 2026⚡️ Забудь про RefCell для примитивов Вам нужно изменить поле внутри неизменяемой структуры…
  5. Sep 15, 2026Создание кроссплатформенного приложения с GUI на Rust: От идеи до реальности Electron-прил…
  6. Sep 11, 2026Почему Vec::new() это ловушка для производительности. 📈 Векторный рост: Избегаем реаллока…
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 →