gpt4 book ai didi

c++ - native 应用程序的初始内存占用量大

转载 作者:可可西里 更新时间:2023-11-01 14:43:21 24 4
gpt4 key购买 nike

我注意到我正在处理的 native C++ 应用程序甚至在进入我的任何代码之前就占用了相当大的内存空间 (20MB)。

(我指的是 Windows 中的“私有(private)字节”度量,据我所知这是最有用的度量)。

我在“main()”函数的第一行放置了一个断点,果然,当它到达时占用空间为 20MB。

EXE 的大小只有几兆,因此不考虑在内。

我还特意删除了所有 DLL,以证明它们不是问题所在。正如预期的那样,它会收到“Dll not found”消息,但占用空间仍为 20MB!

然后我想知道可能是静态初始化的对象导致的。

因此,我为“new”和“malloc”都添加了断点。第一次点击那些(对于第一个静态初始化程序),内存已经是 20MB。

有人知道我如何诊断是什么占用了内存吗?

因为它似乎是通常的 new/malloc 范例之外的内存,所以我很难理解如何调试。

干杯,

约翰

最佳答案

可能是因为您的应用程序使用了很多库。在将执行移交给您的 main() 之前,它们中的大多数都会被初始化。检查您要链接的任何非标准库。

编辑:一个非常简单的解决方案是创建一个新项目,然后将您正在使用的库一个一个地链接起来,每次都检查内存使用情况。尽管这是一种丑陋的方法,但您应该通过这种方式找到罪魁祸首。

可能有更优雅的解决方案,因此您可能想抽出一些时间在谷歌上搜索(免费)内存分析解决方案。

关于c++ - native 应用程序的初始内存占用量大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com