Взгляните на следующее крупномасштабное экспериментальное исследование, опубликованное OOPSLA'96. Я копирую вставку записи в bibtex, реферат и ссылку на статью. Я бы посчитал это наиболее полным экспериментальным исследованием по данной теме на сегодняшний день.
@article{driesen1996direct,
title={{The direct cost of virtual function calls in C++}},
author={Driesen, K. and H{\\"o}lzle, U.},
journal={ACM Sigplan Notices},
volume={31},
number={10},
pages={306--323},
issn={0362-1340},
year={1996},
publisher={ACM}
}
Аннотация:
Изучаем прямую стоимость виртуальной функции
вызовы в программах на C ++, при условии стандартного
реализация с использованием таблиц виртуальных функций. Мы
измерить эти накладные расходы экспериментально для ряда
большие контрольные программы, использующие комбинацию
проверка исполняемого файла и моделирование процессора. наш
результаты показывают, что программы на C ++ измеряют тратить
средний 5,2% своего времени и 3,7% своего
инструкции в коде отправки. Для «всех виртуалов»
версии программ, средняя нагрузка возрастает до
13,7% (13% инструкции). «Тук» вариант
реализации таблицы виртуальных функций уменьшает
накладные расходы в среднем на 21% относительно
стандартная реализация. На будущих процессорах эти
накладные расходы могут увеличиться умеренно
http://www.cs.ucsb.edu/~urs/oocsb/papers/oopsla96.pdf