Вопросы к Поиску с Алисой
Использование виртуальных функций может незначительно снижать производительность программы. stackoverflow.com Это связано с тем, что при их вызове происходит несколько дополнительных операций, которые могут приводить к промахам в кэше данных. stackoverflow.com Например, сначала загружается указатель vtable из объекта, что может вызвать пропуск кэша данных, затем загружается указатель функции из vtable, что может привести к ещё одному пропуску кэша данных. stackoverflow.com
Однако в большинстве случаев два дополнительных промаха в кэше не являются проблемой, но в условиях жёсткого цикла работы с критически важным для производительности кодом это может значительно снизить производительность. stackoverflow.com
При этом удаление виртуальных функций обычно мало влияет на производительность кода: несмотря на уменьшение количества поисков по виртуальной таблице и исполнение меньшего количества инструкций, программа работает с той же скоростью. habr.com