【发布时间】:2011-11-21 22:54:57
【问题描述】:
我正在努力提高同时使用 Boost Graph Library 和 boost::bimap 的程序的性能。分析表明,大部分时间都花在了内存分配和释放上。使图形库的adjacency_list 类使用boost::fast_pool_allocator 显着提高了性能。大部分剩余内存分配发生在boost::bimap 中,所以我也想尝试在那里使用自定义分配器。 documentation 说您可以将分配器指定为 bimap 的最后一个模板参数,但它没有说明分配器本身的模板参数应该是什么类型。例如,对于 X 和 Y 类型,在
boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
Z应该填写什么?
【问题讨论】:
-
我强烈建议不要使用 boost:bimap。直接使用带有两个索引的 boost 多索引容器比使用 bimap 的代码要清晰得多。
-
@Autopulated:谢谢 - 下次我会考虑替代方案,否则我会尝试使用 bimap。
标签: c++ boost memory-pool bimap