我一直在使用一个检测类“SizeOfAgent”来计算我的play 2.0.4环境中的内存需求。 为了做到这一点,我在文件framework \ build.bat中的java命令行上放了“-javaagent:lib \ sizeof.jar” 此jar文件有一个清单文件,其前主要类配置为sizeof.agent.SizeOfAgent 这工作正常,我一直在我的应用程序的某些组件上使用fullSizeOf方法。
升级到Play 2.1.0版本后,此功能不再有效。 我收到错误: play.api.UnexpectedException:意外异常[IllegalStateException:无法访问检测环境。 请检查包含SizeOfAgent类的jar文件是否正确 在java的“-javaagent”命令行参数中指定。]
生成此错误是因为“static Instrumentation inst”返回null:
public static long sizeOf(Object o, boolean print) {
if(inst == null) {
throw new IllegalStateException("Can not access instrumentation environment.\n" +
"Please check if jar file containing SizeOfAgent class is \n" +
"specified in the java's \"-javaagent\" command line argument.");
}
if (print) {
System.out.println(o.getClass().getName() + " : " + inst.getObjectSize(o));
}
return inst.getObjectSize(o);
}
是否有人尝试使用Play 2.1.0的仪器类?