内存管理使用新的放置方式
Memory management using placement new
是否可以使用placement new为多类型变量使用单个内存池。我需要在单个池中声明整数和字符变量。
我应该将池进一步划分为2,然后将其用于不同的变量类型,还是有其他方法?
如果数据类型是可变长度的,那么最好使用标准堆进行内存管理。标准堆针对这个用例进行了高度优化。
使用内存池通常只有在一致地分配相同大小的对象时才有用。然后,可以很容易地将池划分为大小相等的单元格,并执行系统堆无法执行的优化,如自由列表。
简短的答案是肯定的,但通常只有当您有一些内存映射IO(共享内存??)时才需要这样做。AFAIK没有增加速度。你到底在干什么?
你有没有考虑过使用第三方游泳池?我在这里找到了一个非常通用的实现。
Boost::pool也可能是有趣的
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 当vector是tje全局变量时,c++中vector的内存管理
- 在c代码之间共享数据的最佳方式
- 在C++中将函数压缩为两种方式
- 如何以编程方式获取任务管理器进程CPU使用率(不是PerfMon API)
- Win32如何制作多个复选框并以不同的方式管理它们
- 正确的内存管理方式
- 以可维护的方式管理应用程序配置的模式
- 使用QThread运行可管理后台线程的正确方式
- 管理指向派生对象的指针集合的最佳方式
- 内存管理使用新的放置方式
- 使用git管理的c++项目在不同的机器上使用相同的输入以不同的方式运行
- SetupDi API:以编程方式控制设备管理器功能
- 在WinAPI项目中管理字符串资源的现代方式
- C++:如何在 Windows 凭据管理器中以编程方式创建本地用户登录凭据,以便"runas /savecred"可以使用它?
- 正确的方式来管理内存在Qt时暴露QObject类到qml
- 创建特殊文件夹(如控制面板或计算机管理)的快捷方式
- C/ c++以一种特定的方式管理输出
- 这是一种可接受的资源管理方式吗?
- 如何以编程方式发送电子邮件,就像在 Windows 资源管理器中"Send To Mail Recipient"一样?