0

我希望能够在任何应用程序中找到某种对象的所有幸存引用,而无需使用外部内存分析器。

我的基本想法是,我只想能够在我的应用程序中列出所有活跃的用户控件,包括名称和对象大小,这将使我能够发现所有未使用的控件,女巫并没有真正死掉:)

经过一些谷歌研究后,我发现了一些应该符合我兴趣的东西。

icorprofilercallback4::SurvivingReferences

看起来这是纯 C++,我找不到任何示例之王。

有人已经尝试这样做了吗?我在寻找解决方案的正确方向上?

谢谢你对我的问题感兴趣。

4

1 回答 1

0

此接口是 Microsoft Profiling API 的一部分。所有 .NET 内存分析器(您不想使用)都使用此 API 来收集数据。对于您的情况,您需要获取所有活动对象(“幸存”只是其中的一个子集)。要获取对象类型名称,您应该将获取的数据与程序集元数据等绑定。

所以,你走在正确的路上,但这条路非常非常长。使用现有工具之一的时间要短得多,我会推荐你​​这种方式。

于 2017-08-30T18:56:13.497 回答