I've developed a Web Application which process a huge amount of data and takes a lot of time to complete?
So now I am doing profiling of my application and I noticed one very bad thing about GC.
When a Full GC occurred it stops all process for 30 - 40 secs.
I wonder if there is any way to improve this. I don't want to waist my CPU's that much time only in GC. Below are some details that can be useful:
- I am using Java 1.6.0.23
- My Application takes 20 GB max memory.
- A full GC occur after every 14 minutes.
- Memory Before GC is 20 GB and after GC is 7.8 GB
- Memory used in CPU (i.e. shown in task manager) is 41 GB.
- After process completed(JVM is still running) Used memory 5 GB and free memory 15 GB.