Я работаю над повышением производительности программы, которая использует библиотеку графов ускорения и boost::bimap
. Профилирование показало, что большую часть времени тратится на распределение и освобождение памяти. Использование класса adjacency_list
библиотеки графов с использованием boost::fast_pool_allocator
значительно улучшило производительность. Большая часть оставшихся выделений памяти происходит в boost::bimap
, поэтому я хотел поэкспериментировать с использованием там собственного распределителя. Документация говорит, что вы можете указать распределитель как последний параметр шаблона bimap, но в нем не указано, каким типом должен быть аргумент шаблона самого распределителя. Например, для типов X
и Y
, в
boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
что нужно заполнить для Z
?