C# 获取VisualStudio中特定变量使用的内存(ram)

C# 获取VisualStudio中特定变量使用的内存(ram),c#,visual-studio-2012,C#,Visual Studio 2012,我正在完成一个项目,但似乎有些东西占用了太多的内存。我想有些东西没有被处理掉。因为我的程序有很多代码,所以我不想看所有的东西。。必须有一种方法可以查看哪个变量在运行时使用了多少内存?您可以使用调试程序(如带SOS扩展的WinDbg)查看托管内存 连接到流程,使用.loadby SOS clr命令加载SOS,并使用命令检查堆!dumpheap-stat命令。这将告诉您堆上对象的数量和类型。从那里你可以知道,是否有任何这些占用了比你预期的更多的内存 这也有相关的信息 查看所有new命令search@

我正在完成一个项目,但似乎有些东西占用了太多的内存。我想有些东西没有被处理掉。因为我的程序有很多代码,所以我不想看所有的东西。。必须有一种方法可以查看哪个变量在运行时使用了多少内存?

您可以使用调试程序(如带SOS扩展的WinDbg)查看托管内存

连接到流程,使用
.loadby SOS clr
命令加载SOS,并使用
命令检查堆!dumpheap-stat
命令。这将告诉您堆上对象的数量和类型。从那里你可以知道,是否有任何这些占用了比你预期的更多的内存


这也有相关的信息

查看所有
new
命令search@SSpoke这真的是唯一的方法吗?如果是.net,请使用redgate内存分析器。他们有一个免费试用版,你可以使用。启动应用程序,拍摄快照,让它运行一段时间,再拍摄一张快照,比较差异。你可以看到什么被分配了,什么还活着,等等。另外,计算新的不会做任何事情@SSpoke。这是C,不是C++。重要的是事情是否已被处理,或者在GC期间是否可以从根目录访问它们(作为纯托管对象)。有很多方法可以在托管内存中创建内存泄漏,但它们都与您新创建的内容的数量无关up@devshorts啊,节目很好。很容易找到它!!我本来会按照布赖恩的方式去做的,但看起来很难!非常感谢。