【问题标题】:STL-compliant memory allocator library符合 STL 的内存分配器库
【发布时间】:2013-09-27 21:18:11
【问题描述】:

我需要使用map,键为uint32_t,值为Meshes。我希望将网格布局在连续内存中以提高性能,因为它们将经常被连续访问。

我想知道哪些内存分配器库也提供以下功能;

  • 分配给连续的内存空间
  • 最好处理所述内存空间的碎片
  • 除了我提到的之外,尽可能快并尽可能少的附加功能

我查看了 boost,但它似乎没有提供我正在寻找的东西。

(我不使用vector 的原因是容器会增长和缩小很多,我更喜欢使用uint32_t 作为mesh 的标识符)

谢谢

【问题讨论】:

  • 您不考虑编写自己的,特别适合您的用例吗?
  • 到底是什么连续的?地图顺序?
  • 分配器没有从map 获得它应该分配哪个元素的信息。也就是说,您可以在连续存储中创建元素,但不能影响元素的内存顺序(这可能会损害局部性/迭代速度)。您可以在映射中存储指向向量或双端队列的索引或迭代器。这样,您将拥有连续存储(向量)以及 uint32_t 键。

标签: c++ memory-management boost stl


【解决方案1】:

双端队列

http://www.cplusplus.com/reference/deque/deque/

没什么好说的。去阅读它。

【讨论】:

  • 除非既不满足作为映射分配器的要求,也不满足使用连续内存的要求。
猜你喜欢
  • 2014-09-26
  • 1970-01-01
  • 2015-07-04
  • 1970-01-01
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 2016-06-07
  • 2020-08-10
相关资源
最近更新 更多