public class Sizer {
public static void main(String [] args) throws Exception {
Runtime r = Runtime.getRuntime();
// Pre-instantiate variables
long memoryBefore = 0;
long memoryAfter = 0;
int loops = 10;
runGC(r, loops);
memoryBefore = getMemoryUsage(r);
// Long lo = new Long(1);
TestClass in = new TestClass();
runGC(r, loops);
memoryAfter = getMemoryUsage(r);
System.out.println("Diff in size is " + (memoryAfter - memoryBefore));
}
public static void runGC(Runtime r, int loops) throws Exception {
for(int i=0; i<loops; i++) {
r.gc();
Thread.sleep(2000);
}
}
public static long getMemoryUsage(Runtime r) throws Exception {
long usedMemory = r.totalMemory() - r.freeMemory();
System.out.println("Memory Usage: " + usedMemory);
return usedMemory;
}
}
使用下面的代碼來測量它, – adsk 2011-03-15 11:06:30
但是這些成員可以被外部引用,因爲它們具有默認的包私人訪問修飾符。 – krock 2011-03-15 11:25:03