Полный текст
Эффект памяти предсказателя: почему бенчмарки лгутТема предсказателя переходов кажется избитой, но даже опытные инженеры попадают в ловушку при замере производительности. Когда branchless-код внезапно проигрывает обычному ветвлению на малых данных, велик соблазн списать всё на специфику архитектуры. Однако корень проблемы часто скрыт в поведении самого тестового окружения.Многократные прогоны Google Benchmark на одних и тех же данных позволяют процессору буквально выучить случайную последовательность. Это превращает честный тест в демонстрацию возможностей кэша паттернов. Проанализируем механику этой ошибки и выявим способы получения достоверных метрик.