进程的默认堆

Aan*_*Aan 4 windows heap memory-management process

我读了这篇有关Managing heap memoryRandy Kath撰写的文章。我会问这个部分:

Windows中的每个进程都有一个称为默认堆的堆。通过动态创建和销毁进程,进程也可以具有任意数量的其他动态堆。系统将默认堆用于所有全局和本地内存管理功能,而C运行时库使用默认堆来支持malloc函数。

我并没有理解默认堆的功能或好处是什么?

另外,我还有一个问题,作者总是提到reserved and committed space,这是什么意思committed space

Dav*_*nan 5

应用程序需要堆来分配动态内存。Windows自动为每个进程创建一个堆。这是默认堆。大多数应用程序仅使用此默认堆。

提交是将保留的虚拟地址分配给特定内存的行为,以便进程可以使用它。建议您阅读MSDN:管理虚拟内存上的这篇文章。

  • 拥有默认堆可以简化跨组件内存分配/释放,因为双方都可以同意使用默认堆。否则,双方将不得不采用其他方式来协调其分配。 (2认同)