0

我正在开发一个 MFC 应用程序,它似乎会自动提交 ~160MB 的虚拟内存。该应用程序通常以 10-14MB 的内存使用量运行,因此此级别的已提交内存似乎过多。此外,在代码中没有调用 VirtualAlloc 的地方...... COM 和 ATL 也被使用。

在可以到达 __tmainCRTStartup 中的断点之前,内存显示进程启动的实例已提交。

如何保留/提交此内存?

提前致谢!

4

2 回答 2

0

唯一的原因可能是您使用的 DLL。我在许多项目中都使用过 MFC 7.0 和 9.0,并且可以告诉您它们不会占用这么多内存。

于 2010-07-26T17:49:12.210 回答
0

结果发现有一些“遗留”代码使用了一个自定义对象的静态数组,这些对象分配了大约 1000 个额外元素,因此将其更改为使用 std::vector 完全缓解了这个问题......

于 2011-05-11T22:28:53.080 回答