1

我想知道是否有一种方法可以通过编程方式或使用第三方工具(分析器?)来概述 AppDomain 中当前有多少类实例处于活动状态(包括或不包括派生类),甚至更好的是,它们在哪里已分配(不确定这是否可能)。

我知道我可以更改我自己的类以以某种方式包含一些运行计数器,但我也希望将它用于我无法控制的(托管)类。

这甚至可能吗?一些提示或关键字会有所帮助:)

4

3 回答 3

4

我认为您想要使用的是 SOS 和 Windows 调试工具包。

Tess Ferandez 有一个很棒的博客,其中包含大量有关使用它的信息。

http://blogs.msdn.com/tess/

于 2008-10-14T22:04:47.043 回答
1

我几乎不敢回答,因为必须有很多更简单的方法,但是使用adplus进行挂起转储,然后使用WinDbg和 Son of Strike 导航转储文件。

您还可以获得一个分析器,它将帮助您对挂起转储进行一些基本分析。

于 2008-10-14T22:09:35.803 回答
1

我不认为有一种巧妙的方法可以通过反射来做到这一点,就像你可以枚举类或方法一样。CLR Profiler将附加到一个进程,然后报告分配了每个类的多少实例。从理论上讲,您可以针对 CLR Profiler 使用的相同API编写自己的代码,但我怀疑这会花费很多精力,而且不一定有启发性。

于 2008-10-14T22:21:02.440 回答