我正在尝试寻找内存问题,所以我想使用例如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)
...
答案 0 :(得分:0)
我只能谈谈我使用New Relic Java代理的经验,我在生产模式的播放应用中使用了它。
您应该可以使用以下内容包含代理:
activator run -J-javaagent:/temp/jamm-0.3.1.jar
jamm jar应该位于文件系统的某个位置,并且应该在-javaagent选项上设置完整路径。