В последние стандарты активно добавлялись вещи для оптимизации кода.
Например, в C++20 были добавлены атрибуты [[likely]], [[unlikely]].
В C++23 было добавлено атрибут [[assume]], функция std::unreachable().
Одним из таких техник оптимизации является префектичинг кеша процессора.
В последние стандарты активно добавлялись вещи для оптимизации кода. Например, в C++20 были добавлены атрибуты [[likely]], [[unlikely]]. В C++23 было добавлено атрибут [[assume]], функция std::unreachable().
Одним из таких техник оптимизации является префектичинг кеша процессора.
Во многих компиляторах, это доступно в виде интринсиков. https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html#index-_005f_005fbuiltin_005fprefetch https://clang.llvm.org/docs/LanguageExtensions.html#builtin-prefetch
В boost.context есть уже такая функция. https://www.boost.org/doc/libs/1_81_0/boost/context/detail/prefetch.hpp
Планируется также добавить в boost.core. https://github.com/boostorg/core/issues/136
Предлагается добавить в С++ переносимую std::prefetch() функцию.