Monday, 3 February 2014

How Application Performance get impacted by Garbage Collection?

As we seen in our earlier posts that garbage collection is fully dependent on number of objects alive. Because according to mark and sweep algorithm first it will mark all the alive object and then it will remove all other from memory. Means if heap is completely filled with dead objects it will take fraction of second to complete GC cycle. Garbage collector must suspend the execution of the application to ensure the integrity of the object trees.

 So if we have more live objects it will take more time for GC and the suspension time will increase. Which will give a direct impact on response time and throughput. And will slow your application. This suspension off application threads to run the garbage collector is called garbage-collection pause or GC pause time. An application that spends 1% of its execution time on garbage collection will loose more than 20% throughput on a 32-processor system. If we increase the GC time to 2%, the overall throughput will drop by another 20%.

So a long GC Pause can have a direct impact on response time and throughput.So Now this becomes important to check all long GC pause to make application quick and decrease its response time . This can be done by checking all the possible case of long gc and try to eliminate them . To learn more about Causes of Long GC pause check