我想知道如何分析垃圾收集器的性能并监控三代。我想知道是否有可能在任何时间知道生活在gen0,gen1,gen2
中的当前物体是什么。
答案 0 :(得分:5)
你可以得到useful information on GC performance from PerfMon - 不是你想要的那么精细。
有许多.NET内存性能 计数器和这是给你的 解释中的一些指导原则 计数器数据以及如何关联 他们。这假设你有一个基本的 了解GC。
如果您有一个包含Performance/Profiling Tools的Visual Studio高级版本,您可以获得有关单个对象分配和生命周期的更多信息。具体来说,这可能在您希望的领域:
垃圾收集器回收内存 通过解除分配整整一代人 对象。对于已分析的对象 应用程序创建,对象 生命周期视图显示数字和 对象和生成的大小 什么时候被收回。
如果您真的有冒险精神,可以使用Profiling Tools API进行自定义分析。
答案 1 :(得分:1)
The CLR profiler could do this,但我不认为它是主动更新的,例如3.5,4.0,对于2.0目标应用程序,您可以使用链接版本执行此操作。
答案 2 :(得分:1)
查看JetBrains DotTrace。