JVM performance tuning and garbage collection are key elements of application behavior. Numerous methods and systems exist. What they all have in common are trade-offs which on a range of scales balance the need for throughput, space, responsiveness and available memory.
These methods also share the need for extended application pauses which result from the requirement to compact the heap to free up space - one of their main drawbacks.
A number of strategies aim to delay these events, but in the final equation compaction is unavoidable with all collectors that are commercially available, with the exception of Azul's C4, which actually can avoid pauses altogether.
Once Java developers have obtained a broader understanding of performance tuning, and can make more informed decisions, they are able to realize enhanced performance, scalability and reliability from their applications.
For more information about performance tuning and garbage collection, download this white paper.