Справочник на 300 элементов в std::map стал узким местом горячего цикла
Таблица кодов инструментов загружается при старте (300 записей) и дальше только читается — около 50 миллионов поисков в секунду в горячем цикле:
std::map<uint32_t, Instrument> instruments;
const auto& ins = instruments.at(code);
perf stat показывает высокий процент промахов кэша. Какую структуру выбрать?
- Отсортированный vector и бинарный поиск
- std::list с поиском через std::find
- std::multimap с тем же ключом
- std::map с собственным аллокатором new
