Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法确定.NET应用程序中实际分配内存的组件?_C#_.net_Memory - Fatal编程技术网

C# 有没有办法确定.NET应用程序中实际分配内存的组件?

C# 有没有办法确定.NET应用程序中实际分配内存的组件?,c#,.net,memory,C#,.net,Memory,我正在开发一个应用程序,我希望在各个方面都得到优化,在这个目标上,我希望它不要占用太多内存(今天是145 Mb,这对我(51岁)来说是一个很大的问题,因为我使用的ZX81有1(一)Kb…) 那么,有没有办法确定.NET应用程序中实际分配内存的组件?我注意到,具有撤销功能的RichTextBox是一个很好的消费者,但有没有一种方法可以通过编程或visual studio(2017 Enterprise)功能,按“组件”甚至按变量获取分配内存的列表?(内存窗口调试似乎没有帮助) 非常感谢。您可以使用

我正在开发一个应用程序,我希望在各个方面都得到优化,在这个目标上,我希望它不要占用太多内存(今天是145 Mb,这对我(51岁)来说是一个很大的问题,因为我使用的ZX81有1(一)Kb…)

那么,有没有办法确定.NET应用程序中实际分配内存的组件?我注意到,具有撤销功能的RichTextBox是一个很好的消费者,但有没有一种方法可以通过编程或visual studio(2017 Enterprise)功能,按“组件”甚至按变量获取分配内存的列表?(内存窗口调试似乎没有帮助)

非常感谢。

您可以使用它,它是一个很好的内存泄漏、内存使用调查工具

我还推荐这篇Microsoft文章:

这篇博文:


在Visual Studio 2017中,转到“分析”菜单并选择“性能分析器…”:

然后选择“.NET对象分配跟踪”,单击“开始”:


它将运行应用程序,让它运行一段时间,然后停止它并分析结果。

听起来像是内存泄漏。使用内存探查器。谢谢,但“内存探查器”在哪里?@SidiBrah例如,在Visual Studio中,在“调试”下有一个“显示诊断工具”选项,您可以获得一个大的项目树,这些项目已分配,但更有用的是,您可以获取“快照”。e、 g.运行应用程序,拍摄快照,做一些短暂的事情,再拍摄一个快照,它可以比较两者。不过,这并不一定是最容易使用的,所以上面提到的探查器可能有助于(不是个人使用的)查看和分析。我个人也使用dotMemory(尽管很少)。这里是dotMemory的一些免费替代品: