内存管理使用新的放置方式

Memory management using placement new

本文关键字:方式 管理 内存      更新时间:2023-10-16

是否可以使用placement new为多类型变量使用单个内存池。我需要在单个池中声明整数和字符变量。

我应该将池进一步划分为2,然后将其用于不同的变量类型,还是有其他方法?

如果数据类型是可变长度的,那么最好使用标准堆进行内存管理。标准堆针对这个用例进行了高度优化。

使用内存池通常只有在一致地分配相同大小的对象时才有用。然后,可以很容易地将池划分为大小相等的单元格,并执行系统堆无法执行的优化,如自由列表。

简短的答案是肯定的,但通常只有当您有一些内存映射IO(共享内存??)时才需要这样做。AFAIK没有增加速度。你到底在干什么?

你有没有考虑过使用第三方游泳池?我在这里找到了一个非常通用的实现。

Boost::pool也可能是有趣的