Phi*_*eko 2 c++ windows memory-management
Windows API有一组用于堆创建和处理的函数:HeapCreate,HeapAlloc,HeapDestroy等.我想知道程序中另一个堆的用途是什么?从碎片的角度来看,您将获得外部碎片,其中内存不会在堆中重复使用.因此,即使使用了低碎片堆,也存在碎片.额外堆的内存管理似乎是低级别的.所以它们不容易使用.此外,可以使用堆中的分配和管理分配的内存来模拟其他堆.
那么用法是什么?你用过它吗?
一个用例可能是一个长期运行的复杂过程,它会执行大量内存分配和释放.如果用户想要中断该进程,那么清理当前分配的内存的一种简单方法可能是将所有内容放在私有堆上,然后简单地销毁堆.
我已经看到这种技术在嵌入式系统中使用(不使用Windows,所以它没有使用那些确切的API函数).自定义内存分配器具有"标记"堆的特定状态的功能,然后在进程中止时"回退"到该点.
| 归档时间: |
|
| 查看次数: |
2480 次 |
| 最近记录: |