C++ 基于节点的容器的最佳分配器?

C++ 基于节点的容器的最佳分配器?,c++,boost,stl,C++,Boost,Stl,对于基于节点的容器,如list、map和multi_map,最好的分配器是什么? 我有一个boost::无序的地图,有400万个条目。应避免400万次单独分配(用于绩效) 理想情况下,分配器将分配多个(非常)大的块,并将它们划分为每个节点开销为0的节点。应该跟踪空闲节点,但在整个池被破坏或重置之前,不需要释放块。 池不应该是线程安全的(为了性能) 我可以试着写我自己的,但我不喜欢重新发明轮子。事先不知道节点端似乎也有问题 Boost有池,但似乎只提供单例使用。您可以调整/包装。它适用于同样大小的

对于基于节点的容器,如list、map和multi_map,最好的分配器是什么? 我有一个
boost::无序的
地图,有400万个条目。应避免400万次单独分配(用于绩效)

理想情况下,分配器将分配多个(非常)大的块,并将它们划分为每个节点开销为0的节点。应该跟踪空闲节点,但在整个池被破坏或重置之前,不需要释放块。 池不应该是线程安全的(为了性能)

我可以试着写我自己的,但我不喜欢重新发明轮子。事先不知道节点端似乎也有问题

Boost有池,但似乎只提供单例使用。

您可以调整/包装。它适用于同样大小的小物体。
另一个选择是使用。它支持面向对象(非单点)的使用,但是您必须将它打包到由代码> Boo::unOrdEdEdMult//Cuff:> /P>支持的分配器对象。C++中为什么使用<代码> MalOC ?我不是。我试图区分容器完成的分配和分配器本身完成的分配。将其包装在分配器中是困难的部分(IMO)。@XTF:实现分配策略也是困难的部分。因此,您可以只做一个,而不是两个困难的部分。:)