История изменений
Исправление
dzidzitop,
(текущая версия)
:
Разбежку в количестве тактов процессора на «две инструкции» в оптимистичном и пессимистичном случае так и не оценили. А потом уже можно смотреть какую пользу может дать встраивание невиртуальной функции, по сравнению с косвенным вызовом по адресу виртуальной.
Темы для затравки
1) определение компилятором отсутствия сайд-эффектов у встраиваемой функции
2) величина контекста оптимизации
3) стоимость вызова функции
4) инвалидация регистров и содержимого по указателям после вызова (виртуальной) функции
5) планирование выполнения и использования регистров (OoO)
6) десятки их.
Если темы кажутся абстрактными, то достаточно всё это перевести в наносекунды времени выполнения или увидеть лишнее жонглирование регистрами и ненужные store/load в случае невстраивания функции в каждом конкретном случае.
Исправление
dzidzitop,
:
Разбежку в количестве тактов процессора на «две инструкции» в оптимистичном и пессимистичном случае так и не оценили. А потом уже можно смотреть какую пользу может дать встраивание невиртуальной функции, по сравнению с косвенным вызовом по адресу виртуальной.
Темы для затравки
1) определение компилятором отсутствия сайд-эффектов у встраиваемой функции
2) величина контекста оптимизации
3) стоимость вызова функции
4) инвалидация регистров и содержимого по указателям после вызова (виртуальной) функции
5) планирование выполнения и использования регистров (OoO)
6) десятки их.
Исходная версия
dzidzitop,
:
Разбежку в количестве тактов процессора на «две инструкции» в оптимистичном и пессимистичном случае так и не оценили. А потом уже можно смотреть какую пользу может дать встраивание невиртуальной функции, по сравнению с косвенным вызовом по адресу виртуальной.
Темы для затравки
1) определение компилятором отсутствия сайд-эффектов у встраиваемой функции
2) величина контекста оптимизации
3) стоимость вызова функции
4) инвалидация регистров и содержимого по указателям после вызова (виртуальной) функции
5) планирование выполнения (OoO)
6) десятки их.