Performance tuning and garbage collection are key components of application behavior with JVMs. There exist many approaches and strategies, and they all involve trade-offs, trying to balance the need for throughput, space, responsiveness and available memory on a range of scales.
What all of these approaches have in common is the need for extended application pauses, resulting from the requirement to compact the heap to free up space - one of their main drawbacks.
Several strategies are used to delay these events, but in the end compaction cannot be avoided - that is, with all collectors that are commercially available except Azul C4, which is able to avoid pauses altogether.
Application performance, scalability and reliability can improve substantially once Java developers have a more complete understanding of performance tuning and garbage collection, and can make more informed decisions about available options.
For more information about performance tuning and garbage collection, download this white paper.