特别针对使用最新的Visual Studio C++编译器在Windows上编写的C++代码,我想了解 堆(heap) 的实现:
假设我正在使用发布版编译器,并且不担心内存碎片/填充问题,那么在 堆(heap) 上分配内存是否会有内存开销?如果有,每次分配可能会有多少字节的开销?在64位
代码中比32位
更大吗?
我并不是很了解现代的 堆(heap) 实现,但我想知道每次分配时是否会在 堆(heap) 中写入标记,或者是否维护某种表格(如文件分配表)。
关于一个相关的问题(因为我主要考虑像'map'这样的标准库功能),Microsoft标准库实现是否会使用自己的分配器(例如树节点)以优化 堆(heap) 的使用?