我从来没有听说过premain
我觉得这样问有点愚蠢,但是这篇文章的答案 https://stackoverflow.com/questions/9368764/calculate-size-of-object-in-java建议运行它以获得Instrumentation
目的。
但是该函数如何被调用或者如何让它被调用?
package playground;
import java.lang.instrument.Instrumentation;
public class ObjectSizeFetcher {
private static Instrumentation instrumentation;
public static void premain(String args, Instrumentation inst) {
instrumentation = inst;
}
public static long getObjectSize(Object o) {
return instrumentation.getObjectSize(o);
}
}
The premain
是一个与相关的机制java.lang.instrument
包,用于加载在 Java 程序中进行字节码更改的“代理”。
该机制的解释见java.lang.instrument文档 https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html.
其要点是“代理”部署在一个 jar 中,并且该 jar 在其清单中有一个特殊条目,它告诉检测包在哪里查找 premain 方法。您引用的来源应该是一个简单的代理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)