@RomanSamets
C++, C, assembler, CS

Как помочь процессору принять правильное решение, связанное с предварительной загрузкой?

Очень интересует механизм процессоров - предварительная загрузка, но не могу разобратся, как Я могу оптимизировать это в коде.
Как Я понял этот механизм связан с кэшированием, может нужно правильно структурировать код(самый жирный код (по типам данных) данных наверху, а мелкий внизу?).
Заранее спасибо.
  • Вопрос задан
  • 264 просмотра
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Единственное, что вам нужно помнить - это локальность доступа к данным. Далее вам надо понять, как у вас идет обращение к данным. От этого и надо дальше плясать.Лучше пройтисть по массиву слева-направо, чем прыгать по нему туда-сюда. В идеале у вас все данные плотно-плотно лежат в памяти и вы чистаете их подряд.

Если у вас есть структура, типа координат, где несколько полей всегда используются вместе, то их стоит запихать в массив структур. Если у вас большая структура из которой в разных частях программы нужны лишь несколько полей - то лучше использовать структуру массивов - потому что используемые данные будут более плотно расположены в памяти.

Массивы лучше списков, если вам не надо часто добавлять в/удалять из середины.

Используйте меньшие типы данных, если можете. Обойдитесь без аллокаций, если можете.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы