C# 运行代码时,如何知道代码中内存增加的来源

C# 运行代码时,如何知道代码中内存增加的来源,c#,visual-studio,visual-studio-2008,C#,Visual Studio,Visual Studio 2008,我知道这是一个愚蠢的问题,但当我运行包含线程的程序时,我发现任务管理器中应用程序的内存(VM和使用的内存)正在增加,因为此时我的线程停止了,所以我想知道是否有办法知道这一问题的来源,或者只知道应用程序正在编译哪一行。 我使用了线程监视窗口,但没有得到任何有用的信息。如果你确定你的程序使用了过多的内存,那么使用a将是一个很好的第一种方法。如果你确定你的程序使用了过多的内存,那么使用a将是一个很好的第一种方法。你可以使用CLR探查器应用程序可以获取内存消耗的快照。然后,您将能够确定问题的根源 CLR

我知道这是一个愚蠢的问题,但当我运行包含线程的程序时,我发现任务管理器中应用程序的内存(VM和使用的内存)正在增加,因为此时我的线程停止了,所以我想知道是否有办法知道这一问题的来源,或者只知道应用程序正在编译哪一行。
我使用了线程监视窗口,但没有得到任何有用的信息。

如果你确定你的程序使用了过多的内存,那么使用a将是一个很好的第一种方法。

如果你确定你的程序使用了过多的内存,那么使用a将是一个很好的第一种方法。

你可以使用CLR探查器应用程序可以获取内存消耗的快照。然后,您将能够确定问题的根源


CLR Profiler是免费的,可在此处使用:

您可以使用CLR Profiler应用程序获取内存消耗的快照。然后,您将能够确定问题的根源


CLR探查器是免费的,可在此处使用:

值得注意的是,内存探查器不会直接映射到任务管理器中的内存(VM和使用的内存)或计数器

程序的工作集是 在其 已删除的虚拟地址空间 最近引用的。它包括两者 共享和私有数据。共享的 数据包括包含所有数据的页面 申请须知 执行,包括DLL中的 以及系统DLL。作为工作 设置大小增加,内存需求增加 增加

如果内存可用,内存分析器将查看表示您正在使用的实际内存的私有字节


另请参见Tess Ferrandez中关于性能计数器和如何不使用taskmanager的注释一节。值得注意的是,内存探查器不会直接映射到任务管理器中的内存(VM和使用的内存)或计数器

程序的工作集是 在其 已删除的虚拟地址空间 最近引用的。它包括两者 共享和私有数据。共享的 数据包括包含所有数据的页面 申请须知 执行,包括DLL中的 以及系统DLL。作为工作 设置大小增加,内存需求增加 增加

如果内存可用,内存分析器将查看表示您正在使用的实际内存的私有字节

另请参阅Tess Ferrandez中关于性能计数器和如何不使用taskmanager的评论部分