@gibsonman01

Как сильно полиморфизм влияет на производительность и учитывается ли это в серьёзных программно-вычислительных комплексах?

Как сильно полиморфизм влияет на производительность и учитывается ли это в серьёзных программно-вычислительных комплексах
  • Вопрос задан
  • 327 просмотров
Решения вопроса 2
bobrovskyserg
@bobrovskyserg
В серьёзных учитывается всё )))
А вообще-то не сильно.
Умный компилятор оптимизирует вызовы, когда может разрешить типы при компиляции, а если не может - как ты это объедешь при написании программы?
Ответ написан
Комментировать
@mamkaololosha
Оверхед виртуальными функциями, мискеши и прочее. Но тут такая ситуация, что если вы с ними не сталкивались, то скорее всего и не столкнетесь.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Полиморфизм сам по себе влияет на уровне погрешности.
Архитектура без него может оказаться настолько менее оптимальной, что будет тормозить куда сильнее.
По моему опыту оптимизации вычислительной работы программы по скорости, главная проблема - это считать именно то, что нужно. Если просчитываются варианты, то их отсеивание на как можно более ранней стадии - это такой козырь, который бьет любые другие оптимизации.
Вторая - работа с памятью. Создание массива объектов во вложенном цикле в рекурсивной функции легко уложит на бок весь top500 %) Не говоря уже о том, что вероятность течи прямо пропорциональна количеству динамически созданных объектов.
А полиморфизм... ну, если у вас реально полиморфная функция будет вызываться миллион раз в секунду, вы, наверное, почувствуете падение производительности...

В общем, оптимизацию, как мне кажется, нужно проводить в обратном направлении. Сначала - архитектура, в которой работа алгоритмов будет понятной и очевидно оптимальной, затем - поиск узких мест. Если однажды дойдет до того, что узким местом станет полиморфный вызов функций... ну, поздравляю - учите ассемблер!
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы