【发布时间】:2019-12-03 13:33:37
【问题描述】:
我正在开发一个应用程序,我想在各个方面进行优化,并且在这个目标上,我希望它不会占用太多内存(今天它是 145 Mb,对我(51 岁)来说已经很多了我用的是 1(一)Kb 的 ZX81...)
那么有没有办法确定 .NET 应用程序中实际分配内存的组件是什么?我注意到具有撤消能力的 RichTextBox 是一个很好的消费者,但是有没有办法以编程方式或具有视觉工作室(2017 Entreprise)功能,通过“组件”甚至变量获取分配的内存列表? (内存窗口调试似乎没有帮助)。
非常感谢。
【问题讨论】:
-
听起来像是在寻找内存泄漏。使用内存分析器。
-
谢谢,但是“内存分析器”在哪里?
-
@SidiBrah 例如dotMemory
-
在 Visual Studio 中,在“调试”下有一个“显示诊断工具”选项,您可以获得已分配项目的大树,但更有用的是您可以拍摄“快照”。例如运行应用程序,拍摄快照,短时间做某事,拍摄另一个快照,它可以比较两者。虽然不一定是最容易使用的东西,所以上面提到的分析器可能会有所帮助(不是个人使用的)
-
见diagnostic tools debugger window 和profiling memory usage。我个人也使用 dotMemory(虽然很少)。