В приложении AI я пишу на С++,
- не так много численных вычислений
- существует множество структур, для которых необходим полиморфизм во время выполнения.
- очень часто во время вычислений взаимодействуют несколько полиморфных структур.
В такой ситуации существуют ли какие-либо методы оптимизации? Хотя сейчас я не буду оптимизировать приложение, одним из аспектов выбора С++ над Java для проекта было включение большего количества рычагов для оптимизации и возможность использования неъектных ориентированных методов (шаблонов, процедур, перегрузки).
В частности, каковы методы оптимизации, связанные с виртуальными функциями? Виртуальные функции реализуются через виртуальные таблицы в памяти. Есть ли способ предварительно извлечь эти виртуальные таблицы в кеш-память L2 (стоимость извлечения из кэша памяти /L 2 увеличивается)?
Кроме того, существуют ли хорошие ссылки на методы определения местоположения на С++? Эти методы уменьшат время ожидания для извлечения данных в кэш L2, необходимый для вычисления.
Обновление. Также см. следующие связанные форумы: Штраф за производительность для интерфейса, Несколько уровней базовых классов