我注意到我正在处理的本机 C++ 应用程序在进入我的任何代码之前就具有相当大的内存占用 (20MB)。
(我指的是 Windows 中的“私有字节”度量,据我了解,这是最有用的度量)。
我在“main()”函数的第一行放置了一个断点,果然,当它到达那个位置时,占用空间是 20MB。
EXE 的大小只有几兆,所以这还不算。
我还故意删除了所有的 DLL,只是为了证明它们不是原因。正如预期的那样,它收到“找不到 Dll”消息,但占用空间仍然是 20MB!
所以然后我想知道可能是静态初始化的对象是原因。
因此,我在“new”和“malloc”中都添加了断点。在第一次命中(对于第一个静态初始化程序)时,内存已经是 20MB。
有人对我如何诊断是什么消耗了这段记忆有任何想法吗?
因为它似乎是通常的 new/malloc 范式之外的内存,所以我很难理解如何调试。
干杯,
约翰