小编Ste*_*sen的帖子

要求提升游泳池体验.作为具有预分配的分配器有用吗?

最近我一直在寻找一个池/分配器机制.Boost Pool似乎提供了解决方案,但仍有一些东西,它无法从文档中推断出来.

什么需要分配

  1. 几个小班(约30个字符)
  2. std :: map(我想确保它不会自己执行动态分配器)
  3. 在pugi :: xml中分配
  4. 的std ::字符串

如何控制地址空间以进行分配(或仅限金额)

object_pool似乎提供了分配需求的好方法1)但是它想为分配器设置一个固定的大小来使用.默认情况下它会抓住内存.如果可能的话,我想给它一个可以在其中播放的地址空间.

char * mem_for_class[1024*1024];
boost::object_pool<my_class,mem_for_class> q;
Run Code Online (Sandbox Code Playgroud)

要么:

const int max_no_objs=1024;
boost::object_pool<my_class,max_no_objs> q;
Run Code Online (Sandbox Code Playgroud)

虽然UserAllocator在Boost :: Pool中可用; 它似乎打败了这一点.我担心所需的控制会使它效率太低......而且从头开始会更好.

可以为pool_allocator设置固定区域吗?

问题有点类似于第一个问题.在将boost :: pool_allocator提供给std-type-class(例如map)时,boost pool是否提供了限制分配内存的位置的方法

我的情景

嵌入式linux编程.系统必须继续运行.所以我们不能冒任何内存分段的风险.目前我主要是静态分配(堆栈),还有一些原始的"新".我想要一个分配方案,确保每次程序循环时我使用相同的内存区域.速度/空间很重要,但安全仍然是首要任务.

我希望StackOverflow是值得一提的地方.我试图联系Boost :: Pool"Stephen"的作者,但没有运气.我还没有找到任何特定于Boost的论坛.

c++ boost memory-management allocation objectpool

6
推荐指数
1
解决办法
2254
查看次数

标签 统计

allocation ×1

boost ×1

c++ ×1

memory-management ×1

objectpool ×1