0

我即将部署我的新 WPF 应用程序,我刚刚在任务管理器中注意到它消耗了大量内存。因此,我下载了 RedGate Antz 的试用版,试图找出导致此问题的原因,我震惊地看到大约 90 MB 的非托管内存使用情况。因为 Antz 不支持未损坏的内存,所以我尝试使用 Windbg,它本身并没有指向高使用率。这让我相信它一定是我正在加载的 DLL 之一。我在我的应用程序中使用 DevExpress 控件。

一个有趣的功能是当我最小化我的应用程序时,内存从 110 MB 下降到大约 6-10 MB。

我应该担心/担心吗?

这是我的第一个 WPF 应用程序,我不完全确定在内存使用方面会发生什么。最小化此内存的事实是否会重新获得/放弃表明一切正常?

关于可能导致此问题的任何想法或想法将是最有帮助的。

4

1 回答 1

2

如果您想具体了解导致它的原因,我对 SciTech 的 .Net Memory Profiler (memprofiler.com) 非常满意。

由于 .Net 运行时的性质,如果您在一台有大量可用内存的机器上运行,那么它通常会尝试使用它。如果您开始看到与它相关的性能问题,那么您应该担心,并且通常最好知道什么在使用资源,不管怎样。内存下降的一个可能原因是其中一个 DLL 可能会挂接到主窗口的事件并在最小化时调用垃圾收集。

如果您担心高内存使用的感觉,您可以使用一些技巧来按摩 TaskManager 中显示的数字(例如 p/invoking SetProcessWorkingSetSize),但这似乎并不是您真正要问的.

于 2012-07-11T15:23:22.587 回答