Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Java
Expertise: Beginner
Mar 6, 2000

Determining Heap Size

Question:
How do I find the size of the heap memory that is available for Java program?

Answer:
The maximum size of the Java heap is fixed by the JVM runtime at startup, but usually starts from a smaller initial value and gradually grows to the maximum value as more memory is needed. Both the maximum and initial sizes of the Java heap can be adjusted in most JVMs. The approximate size of the heap can be determined with Runtime.totalMemory().

The portion of that memory that is available for allocation to new objects is returned by Runtime.freememory(). The following example program prints out both the total and free memory sizes, allocates a chunk of memory, and then prints the memory sizes again. If the initial size of your JVM's heap is about 1 MB, you should see the total memory increase as the heap grows. The amount of free memory should change as a function of the amount of memory allocated and the increase in size of the heap.

public final class HeapSize {

  public static final int DATA_SIZE = 1024*1024;

  public static final void printMemory(Runtime runtime) {
    System.out.println("\nTotal Memory: " + runtime.totalMemory());
    System.out.println("Free Memory : " + runtime.freeMemory());
  }

  public static final void main(String[] args) {
    Runtime runtime;
    byte[] data;

    runtime = Runtime.getRuntime();

    printMemory(runtime);

    data = new byte[DATA_SIZE];

    printMemory(runtime);
  }
}
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date