Russ Cox (Go core dev) в своем блоге о реализации generi c, о которой упоминалось ниже о методе расширения макросов (C ++) для реализации обобщений -
Отдельные специализации могут быть эффективными, но программа в целом может пострадать из-за плохого использования кэша инструкций
Я размышлял над этим утверждением в течение нескольких дней, но не смог понять причину этого. Есть ли какая-либо разумная причина этого предположения?
Я понимаю, что кэш инструкций не будет использоваться должным образом (относительно), если у нас будет -
- Плохая локализация ссылок на инструкции
- Плохой прогноз ветвления.
Вызывает ли расширение макросов что-либо из этого?
Обновление : аналогичное обсуждение в Go Generi c Краткое содержание обсуждения . Здесь они обобщили технику, используемую в C ++, как Специализация типов