Question

My boss wants me to profile our product application to see if we can get some improvement with regard to memory usage. When I profile the memory, I get this:

memory performance results

What's the meaning of the last column ("Generations")? How can I analysis the application using this information?

Was it helpful?

Solution

Concerning the "generations" column:

VisualVM comes with your Sun JDK6 for free, originates from Netbeans, look for jvisualvm in JAVA_HOME/bin. It incorporates a memory profiler that uses a metric called “surviving generations” (or short “generations”). So what is a surviving generation? Surviving generations: The number of different ages for all objects allocated on the JVM heap since the profiling session started. Age of object: The age of the object is the number of garbage collections the object has survived.

Extracted from http://www.munzandmore.com/2011/ora/memleak

About how to analyze the data, it's a broad subject. I suggest you to take a look at this:

http://my.safaribooksonline.com/book/programming/java/9780137001040

OTHER TIPS

Surviving generations are explained in this blog post.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top