Tuning Java Virtual Machines (JVMs) refers largely to memory heap size and garbage collection (GC) tuning.
With most JVMs, tuning heap size requires profiling how the application is using memory, changing parameters and re-profiling. The application should be running close to production loads as much as possible. This is not easy to do, as some real-world loads just won’t be seen in the lab. Most JVMs have the ability to set initial and maximum heap size, though a few also allow other parameters such as large pages. Set the heap size too large, and garbage collection pauses become too long; set the heap size too small, and the application will throw an out-of-memory error and most likely crash. Therefore memory and GC tuning are closely related topics, impacting application performance.
For more information about JVM performance tuning and garbage collection, download this white paper about the various tuning and collection strategies available. Java developers can improve the performance, scalability and reliability of their applications by having a more in-depth perspective on performance tuning and understanding the available options.