Появились подсказки компилятору о предварительной загрузке данных и инструкций
10.12.2025В модуле core::hint появились четыре подсказки компилятору о предварительной загрузке: для чтения данных, для записи данных, для чтения инструкций и для записи инструкций.
Что это и чем не является
Это именно подсказки, а не операции. Они не вызывают ничего и не гарантируют эффект: если процессор не поддерживает предварительную загрузку, вызов просто ничего не делает.
Смысл в том, чтобы дать компилятору знание о будущем. Код может знать, что через строку или через тысячу элементов будет обращение к памяти, а компилятор — нет: он видит только конкретные обращения и не может предположить, что следующий цикл будет тем же.
Четыре варианта
Разделение по чтению и записи существенно, потому что у процессоров разные инструкции для этих случаев. Разделение по данным и инструкциям — потому что подсказка должна знать, что именно будет скоро запрошено: содержимое памяти или код.
Один из вариантов, для записи инструкций, решено не экспортировать — то есть состав методов ещё может измениться.
Где это полезно
Обход больших массивов, когда элементы известны заранее. Код с признаком, что будет обращение к строке. Собственные структуры данных, где доступ заранее просчитан.
Оригинал
add core::hint::prefetch_{read, write}_{data, instruction}
Упоминаний: 1 · Просмотров: 2