【发布时间】:2013-05-27 07:22:32
【问题描述】:
我正在将 VC++ 10 用于我正在处理的 C++ 项目,并且出于某种原因,每当我分配一个对象时,系统都会为其分配 4kb 的内存(即使该对象有几个字节长)。
总结一下:
- 使用 new/malloc 分配小对象会导致为每个对象分配 4kb。
- 我用一个新项目验证了项目设置,没有任何差异。
- 该项目使用外部 C dll,并包含一个头文件,其中包含该 dll 的导出函数和结构的声明。
- 测试系统是 Win7 x64 但应用程序是为 x86 编译的
项目相当大,但我没有找到任何指令告诉系统分配那么多内存,我可以验证传递给 new/malloc 的参数是对象的正确大小。
请注意,我的项目中的所有对象/结构都会发生这种情况。
提前谢谢你。
【问题讨论】:
-
您是否在调试模式下构建?
-
您是如何观察到 4kb 值的?我强烈怀疑这只是正常的内存分页行为。
-
您可以发布内存分配的源代码吗?
-
Can you post source code for your allocation?以及如何测量内存分配 -
@user1400757 尝试两个对象。您可能会发现内存消耗没有变化。
标签: c++ visual-c++ memory-management