什么是java的等效于java的-verbose:gc命令行选项

Gar*_*vis 6 .net c# java performance garbage-collection

我正在写一个ASP.NET MVC应用程序,我看到一个似乎随机的表现来自我的一个动作.我最初的经验是,垃圾收集正在进行并暂停应用程序一段时间,但我似乎无法找到一个可以证明或反驳我的理论的按钮/开关.

对于没有java人,有-verbose:gc一个命令行开关,你可以传递给一个java应用程序,它将在GC事件发生时打印出JVM以及需要多长时间.

我试图使用vs2010性能工具和JetBrains dotTrace,这两者都有点像使用热核武器来破解小螺母.

Nav*_*een 6

在.NET 4.0中,有Windows事件跟踪(ETW),它为您提供所需的信息.这是GC特有的一个.

FYI ETW速度非常快,内置于内核中.使用ETW,您应该能够获得这样的信息 替代文字

替代文字

为了获得这些信息,BCL团队提供了一个名为PerfMonitor的工具

以下是使用该工具获取GC信息的步骤

  1. 以管理员身份启动cmd或powershell,这需要收集ETW跟踪
  2. 启动要跟踪的应用程序
  3. 发出命令"PerfMonitor.exe/process:4180 start",其中4180是进程ID
  4. 做必要的行动
  5. 然后发出"PerfMonitor.exe stop"
  6. 获取报告"PerfMonitor.exe GCTime"的命令.这将生成一个报告并在浏览器中打开它

我也在博客上大致相同

HTH