Re[9]: А С++ то схлопывается...
От: Denis Ivlev  
Дата: 01.11.19 14:29
Оценка: +1 :))
Здравствуйте, Pzz, Вы писали:

DI>>Неудачное стечение обстоятельств и вызов ВФ оказывается медленней в сотни раз. При этом в С виртуальные функции при необходимости делаются легко.


Pzz>Откуда там в сотни раз?


Из архитектуры компьютера:

L1 cache reference                           0.5 ns
L2 cache reference                           7   ns                      14x L1 cache
Main memory reference                      100   ns                      20x L2 cache, 200x L1 cache


https://gist.github.com/jboner/2841832

Заинлайненая функция будет запрефетчена в кеш инструкций, поход только в таблицу виртуальных функций, если она не оказалась в кеше может стоить в 200 раз больше, а еще и саму функцию затем надо вызвать, а это еще один поход в память. Но даже если она и не будет заинлайнена, то это все равно сильно дешевле.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.