【发布时间】:2013-09-27 21:18:11
【问题描述】:
我需要使用map,键为uint32_t,值为Meshes。我希望将网格布局在连续内存中以提高性能,因为它们将经常被连续访问。
我想知道哪些内存分配器库也提供以下功能;
- 分配给连续的内存空间
- 最好处理所述内存空间的碎片
- 除了我提到的之外,尽可能快并尽可能少的附加功能
我查看了 boost,但它似乎没有提供我正在寻找的东西。
(我不使用vector 的原因是容器会增长和缩小很多,我更喜欢使用uint32_t 作为mesh 的标识符)
谢谢
【问题讨论】:
-
您不考虑编写自己的,特别适合您的用例吗?
-
到底是什么连续的?地图顺序?
-
分配器没有从
map获得它应该分配哪个元素的信息。也就是说,您可以在连续存储中创建元素,但不能影响元素的内存顺序(这可能会损害局部性/迭代速度)。您可以在映射中存储指向向量或双端队列的索引或迭代器。这样,您将拥有连续存储(向量)以及uint32_t键。
标签: c++ memory-management boost stl