从sbt运行hprof

时间:2011-04-08 19:59:03

标签: scala sbt hprof

如何从hprof运行sbt

是否有不同的选项来分析CPU与堆?

2 个答案:

答案 0 :(得分:3)

我假设您不想对sbt本身进行分析,因此您必须使用fork机制并与hprof options结合使用:

override def fork = forkRun("-agentlib:hprof=heap=sites" :: Nil)

override def fork = Some(new ForkScalaRun { 
  override def runJVMOptions = super.runJVMOptions ++
    Seq("-Xmx1999m", "-agentlib:hprof=heap=sites") 
  override def scalaJars = Seq(buildLibraryJar.asFile, buildCompilerJar.asFile)
})

以下是一些示例选项(使用-agentlib:hprof=help获取更多帮助):

Option Name and Value  Description                    Default
---------------------  -----------                    -------
heap=dump|sites|all    heap profiling                 all
cpu=samples|times|old  CPU usage                      off

答案 1 :(得分:0)

为了完整起见:如果您使用传统的build.sbt,您也可以使用

fork in run := true

javaOptions in run += "-agentlib:hprof=heap=sites"