/*
* Output:
Total memory is: 2031616
Initial free memory: 1774312
Free memory after garbage collection: 1875680
Free memory after allocation: 1715296
Memory used by allocation: 160384
Free memory after collecting discarded Integers: 1875680
*/
public class MainClass {
public static void main(String args[]) {
Runtime r = Runtime.getRuntime();
long mem1, mem2;
Integer someints[] = new Integer[10000];
System.out.println("Total memory is: " + r.totalMemory());
mem1 = r.freeMemory();
System.out.println("Initial free memory: " + mem1);
r.gc();
mem1 = r.freeMemory();
System.out.println("Free memory after garbage collection: " + mem1);
for (int i = 0; i < someints.length; i++)
someints[i] = new Integer(i); // allocate integers
mem2 = r.freeMemory();
System.out.println("Free memory after allocation: " + mem2);
System.out.println("Memory used by allocation: " + (mem1 - mem2));
for (int i = 0; i < someints.length; i++)
someints[i] = null;
r.gc(); // request garbage collection
mem2 = r.freeMemory();
System.out.println("Free memory after collecting" + " discarded Integers: "
+ mem2);
}
}
|