AI-приложения в C ++: Насколько дороги виртуальные функции? Каковы возможные оптимизации?

В приложении AI я пишу на C ++,

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

В такой ситуации есть какие-то методы оптимизации? Пока я выигралЧтобы оптимизировать приложение только сейчас, одним из аспектов выбора C ++ вместо Java для проекта было предоставление большего рычага для оптимизации и возможность использования не объектно-ориентированных методов (шаблоны, процедуры, перегрузка).

В частности, каковы методы оптимизации, связанные с виртуальными функциями? Виртуальные функции реализуются через виртуальные таблицы в памяти. Есть ли какой-нибудь способ предварительно извлечь эти виртуальные таблицы в кэш L2 (стоимость выборки из памяти / кэш L2 увеличивается)?

Помимо этого, есть ли хорошие ссылки на методы локальности данных в C ++? Эти методы позволят сократить время ожидания выборки данных в кэш L2, необходимое для вычислений.

ОбновитьТакже смотрите следующие связанные форумы:Штраф за производительность за интерфейс,Несколько уровней базовых классов

Ответы на вопрос(15)

Ваш ответ на вопрос