我正在写一个ASP.NET MVC应用程序,我看到一个似乎随机的表现来自我的一个动作。我最初的经验是,垃圾收集正在进行并暂停应用程序一段时间,但我似乎无法找到一个可以证明或反驳我的理论的按钮/开关。
对于没有java的人-verbose:gc
是一个命令行开关,您可以将其传递给Java应用程序,该事件将在GC事件发生时打印出JVM以及需要多长时间。
我试图使用vs2010性能工具和JetBrains dotTrace,这两者都有点像使用热核武器来破解小螺母。
答案 0 :(得分:6)
在.NET 4.0中,有Windows事件跟踪(ETW),可以为您提供所需的信息。这是GC特有的一个。
FYI ETW速度非常快,内置于内核中。使用ETW,您应该能够获得这样的信息
为了获得这些信息,BCL团队提供了一个名为PerfMonitor
的工具以下是使用该工具获取GC信息的步骤
我还有blogged大致相同的
HTH
答案 1 :(得分:0)
你的第一个猜测不应该是GC。对于所有正常工作负载,您不会注意到.NET中的GC。
GC没有跟踪开关,但如果您仍然认为GC应该受到责备,您可以查看performance counters。