Java check memory Allocation

By | April 7, 2012
class test
{
	public static void main(String args[])
	{
			Runtime r = Runtime.getRuntime();
			long mem1, mem2;
			Integer someints[] = new Integer[1000];
			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<1000; 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));

			// 	discard Integers
			for(int i=0; i<1000; i++) someints[i] = null;
				r.gc(); // request garbage collection

			mem2 = r.freeMemory();
			System.out.println("Free memory after collecting" +" discarded Integers: " + mem2);
	}
}

When run the code the output will be similar to this

Total memory is: 5177344
Initial free memory: 4986744
Free memory after garbage collection: 5063784
Free memory after allocation: 5045296
Memory used by allocation: 18488
Free memory after collecting discarded Integers: 5063784

Leave a Reply

Your email address will not be published. Required fields are marked *