РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
834 of 1245 menu

Функция hint::black_box

Функция black_box из модуля std::hint является специальной функцией, которая предотвращает оптимизации компилятора. Она заставляет компилятор думать, что переданное значение является неизвестным и может быть использовано произвольным образом. Функция принимает значение любого типа T и возвращает его же, но компилятор не может оптимизировать код, полагаясь на знание о значении. Особенно полезна при написании бенчмарков и тестов производительности.

Синтаксис

std::hint::black_box(value)

Пример

Давайте рассмотрим простой пример использования функции black_box для предотвращения оптимизации вычислений:

use std::hint::black_box; fn main() { let res = black_box(2 + 2); println!("{}", res); }

Результат выполнения кода:

4

Пример

Давайте используем black_box в цикле для измерения производительности:

use std::hint::black_box; fn main() { let mut res = 0; for i in 0..5 { res += black_box(i); } println!("{}", res); }

Результат выполнения кода:

10

Пример

Давайте применим black_box к вектору, чтобы предотвратить оптимизацию его обработки:

use std::hint::black_box; fn main() { let vec = vec![1, 2, 3, 4, 5]; let res = black_box(&vec).iter().sum::<i32>(); println!("{}", res); }

Результат выполнения кода:

15

Смотрите также

  • макрос bench,
    который используется для написания бенчмарков
  • атрибут ignore,
    который позволяет пропускать тесты при запуске
  • макрос assert!,
    который проверяет истинность утверждения в тестах
  • атрибут should_panic,
    который проверяет, что код вызывает панику
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить