在Play framework 2.5.x中设置javaagent

时间:2016-11-16 13:09:39

标签: playframework sbt playframework-2.5

我正在尝试寻找内存问题,所以我想使用例如jamm来检查我的数据结构的大小,但我无法让它工作。

在我的build.sbt中,我添加:

javaOptions += "-javaagent:jamm-0.3.1.jar"
packageOptions ++= Seq(Package.ManifestAttributes("Premain-Class" -> "org.github.jamm.MemoryMeter"),
                       Package.ManifestAttributes("Agent-Class" -> "org.github.jamm.MemoryMeter"))
libraryDependencies += "com.github.jbellis" % "jamm" % "0.3.1"

我已经尝试了这个以及sbt run -J-javaagent:jamm-0.3.1.jar之类的其他变体,但我总是得到例外,因为没有在jamm中设置检测:

java.lang.IllegalStateException: Instrumentation is not set; Jamm must be set as -javaagent
              at org.github.jamm.MemoryMeter.measure(MemoryMeter.java:210)
              ...

1 个答案:

答案 0 :(得分:0)

我只能谈谈我使用New Relic Java代理的经验,我在生产模式的播放应用中使用了它。

您应该可以使用以下内容包含代理:

activator run -J-javaagent:/temp/jamm-0.3.1.jar

jamm jar应该位于文件系统的某个位置,并且应该在-javaagent选项上设置完整路径。