我该如何hprof
逃跑sbt
?
是否有不同的选项来分析 CPU 与堆?
我假设您不想分析sbt
自己,因此您必须使用该fork
机制并与hprof 选项结合使用:
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
为了完整起见:如果您使用的是传统的build.sbt
,您也可以使用
fork in run := true
javaOptions in run += "-agentlib:hprof=heap=sites"