【发布时间】:2015-06-14 05:09:53
【问题描述】:
我想在我的 OpenGL 游戏中添加一个小型调试 UI,它会经常更新,并提供各种调试选项/输出显示。我想要的一件事是一个常量计数器,它显示每一代垃圾收集器中的活动对象。我不想要名字或任何东西,只想要总数;当我在游戏中做某些事情时,我可以注意到的东西。
然而,我的问题是我似乎无法找到一种方法来计算各个世代中当前存活的对象总数。
我什至考虑保留一个全局静态字段,该字段将在每个构造函数中递增,并在类终结器中递减。但是,这需要将所述功能手动编码到每个类中,并且不会解决“每代总数”的问题。
你知道我该怎么做吗?
【问题讨论】:
-
我会改用ClrMD
-
如果您没有得到更简单的答案,您可以尝试使用 CLR 的非托管调试和分析 API 来检查 GC:请参阅 this answer 至此 similar question。
-
建议:使用独立的 .NET 内存分析器来分析您的应用程序可能更容易。
标签: c# garbage-collection