It is easy to use intrumentation.
Source
import java.lang.instrument.Instrumentation;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Calendar;
import java.util.HashMap;
public class Test {
private static Instrumentation inst;
private static Instrumentation inst;
public static void premain(String options, Instrumentation inst) {
Test.inst = inst;
}
Test.inst = inst;
}
public static long sizeOf(Object o) {
assert inst != null;
return inst.getObjectSize(o);
}
assert inst != null;
return inst.getObjectSize(o);
}
public static void main(String[] args) {
System.out.println("Size of Object: " + sizeOf(new Object()));
System.out.println("Size of String: " + sizeOf(new String()));
System.out.println("Size of String111: " + sizeOf(new String("111.111.111.111")));
System.out.println("Size of StringBuffer: " + sizeOf(new String()));
System.out.println("Size of HashMap: " + sizeOf(new HashMap()));
System.out.println("Size of direct subclass: " + sizeOf(new Test()));
System.out.println("Size of Calendar: " + sizeOf(Calendar.getInstance()));
}
}
System.out.println("Size of Object: " + sizeOf(new Object()));
System.out.println("Size of String: " + sizeOf(new String()));
System.out.println("Size of String111: " + sizeOf(new String("111.111.111.111")));
System.out.println("Size of StringBuffer: " + sizeOf(new String()));
System.out.println("Size of HashMap: " + sizeOf(new HashMap()));
System.out.println("Size of direct subclass: " + sizeOf(new Test()));
System.out.println("Size of Calendar: " + sizeOf(Calendar.getInstance()));
}
}
manifest.mf
Manifest-Version: 1.0
Premain-Class: com.google.laputa.sms.sample.Test
Main-Class: com.google.laputa.sms.sample.Test
jaring
$ jar cvfm test.jar test-classes/MANIFEST.MF -C test-classes .
execution
$ java -ea -javaagent:test.jar -jar test.jar
Result
Size of Object: 8
Size of String: 24
Size of String111: 24
Size of StringBuffer: 24
Size of HashMap: 40
Size of direct subclass: 8
Size of Calendar: 112
'java core' 카테고리의 다른 글
URLConnection vs HTTPURLConnection (0) | 2009.07.20 |
---|---|
Finally 범위 (0) | 2009.07.15 |
How to get List comparator using Comparator class. (0) | 2009.05.13 |
JMX reference (0) | 2009.04.29 |
Effective Java Reload (0) | 2009.04.29 |