2019独角兽企业重金招聘Python工程师标准>>>
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); 在MANIFEST.MF中添加如下内容: Premain-Class: ObjectSizeFetcher 然后,我们就可以在main函数中尝试获取对象占用的内存大小了: public class C { private int x; private int y; public static void main(String [] args) { System.out.println(ObjectSizeFetcher.getObjectSize(new C())); 将上面的代码打包成jar后,执行: java -javaagent:ObjectSizeFetcherAgent.jar C -javaagent参数和MANIFEST.MF中的内容,在执行 类C中的main函数之前,ObjectSizeFetcher中的premain方法会执行。这样,instrumentation就有了应用的Instrumentation类型的对象。 Calculate size of Object in Java: http://stackoverflow.com/questions/9368764/calculate-size-of-object-in-java In Java, what is the best way to determine the size of an object?: http://stackoverflow.com/questions/52353/in-java-what-is-the-best-way-to-determine-the-size-of-an-object JavaAgent: http://www.cnblogs.com/diyunpeng/archive/2011/05/26/2057932.html jamm: https://github.com/jbellis/jamm 2019独角兽企业重金招聘Python工程师标准>>> ... JVM参数配置 Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之,JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上 java虚拟机的参数中,有3种表示方法 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用(但是,这些参数往往是非常有用 <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>4.0.0</version> </dependency> Error response from daemon: Error processing tar file(exit status 1): remove /hosts: device or resou 14365
Premain-Class: ObjectSizeFetcher
public class C { private int x; private int y; public static void main(String [] args) { System.out.println(ObjectSizeFetcher.getObjectSize(new C())); 将上面的代码打包成jar后,执行: java -javaagent:ObjectSizeFetcherAgent.jar C -javaagent参数和MANIFEST.MF中的内容,在执行 类C中的main函数之前,ObjectSizeFetcher中的premain方法会执行。这样,instrumentation就有了应用的Instrumentation类型的对象。 Calculate size of Object in Java: http://stackoverflow.com/questions/9368764/calculate-size-of-object-in-java In Java, what is the best way to determine the size of an object?: http://stackoverflow.com/questions/52353/in-java-what-is-the-best-way-to-determine-the-size-of-an-object JavaAgent: http://www.cnblogs.com/diyunpeng/archive/2011/05/26/2057932.html jamm: https://github.com/jbellis/jamm 2019独角兽企业重金招聘Python工程师标准>>> ... JVM参数配置 Java GC机制的目的是为了实用,也就是为了在JVM出现问题时分析原因并解决之,JVM监控与调优主要的着眼点在于如何配置、如何监控、如何优化3点上 java虚拟机的参数中,有3种表示方法 标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容; 非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容; 非Stable参数(-XX),此类参数各个jvm实现会有所不同,将来可能会随时取消,需要慎重使用(但是,这些参数往往是非常有用 <groupId>org.apache.lucene</groupId> <artifactId>lucene-core</artifactId> <version>4.0.0</version> </dependency> Error response from daemon: Error processing tar file(exit status 1): remove /hosts: device or resou 14365
java -javaagent:ObjectSizeFetcherAgent.jar C