C# 有没有办法确定.NET应用程序中实际分配内存的组件?
我正在开发一个应用程序,我希望在各个方面都得到优化,在这个目标上,我希望它不要占用太多内存(今天是145 Mb,这对我(51岁)来说是一个很大的问题,因为我使用的ZX81有1(一)Kb…) 那么,有没有办法确定.NET应用程序中实际分配内存的组件?我注意到,具有撤销功能的RichTextBox是一个很好的消费者,但有没有一种方法可以通过编程或visual studio(2017 Enterprise)功能,按“组件”甚至按变量获取分配内存的列表?(内存窗口调试似乎没有帮助) 非常感谢。您可以使用它,它是一个很好的内存泄漏、内存使用调查工具 我还推荐这篇Microsoft文章: 这篇博文:C# 有没有办法确定.NET应用程序中实际分配内存的组件?,c#,.net,memory,C#,.net,Memory,我正在开发一个应用程序,我希望在各个方面都得到优化,在这个目标上,我希望它不要占用太多内存(今天是145 Mb,这对我(51岁)来说是一个很大的问题,因为我使用的ZX81有1(一)Kb…) 那么,有没有办法确定.NET应用程序中实际分配内存的组件?我注意到,具有撤销功能的RichTextBox是一个很好的消费者,但有没有一种方法可以通过编程或visual studio(2017 Enterprise)功能,按“组件”甚至按变量获取分配内存的列表?(内存窗口调试似乎没有帮助) 非常感谢。您可以使用
在Visual Studio 2017中,转到“分析”菜单并选择“性能分析器…”: 然后选择“.NET对象分配跟踪”,单击“开始”:
它将运行应用程序,让它运行一段时间,然后停止它并分析结果。听起来像是内存泄漏。使用内存探查器。谢谢,但“内存探查器”在哪里?@SidiBrah例如,在Visual Studio中,在“调试”下有一个“显示诊断工具”选项,您可以获得一个大的项目树,这些项目已分配,但更有用的是,您可以获取“快照”。e、 g.运行应用程序,拍摄快照,做一些短暂的事情,再拍摄一个快照,它可以比较两者。不过,这并不一定是最容易使用的,所以上面提到的探查器可能有助于(不是个人使用的)查看和分析。我个人也使用dotMemory(尽管很少)。这里是dotMemory的一些免费替代品: