如何从hprof
运行sbt
?
是否有不同的选项来分析CPU与堆?
答案 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"