简单有效的G1 GC调整技巧 - JAXenter


在本文中,Ram Lakshmanan分享了一些技巧,以调整G1垃圾收集器以获得简单而有效的最佳性能。通过这些技巧,方法和说明来调整应用程序以获得最佳性能。自Java 9以来,G1一直是默认的GC算法。
 
1.最大GC暂停时间
考虑将“ -XX:MaxGCPauseMillis”参数与您首选的暂停时间目标一起传递。将此参数设置为你最大暂停时间的目标值。G1 GC算法会尽力达到此目标。
 
2.避免设定年轻代大小
避免将年轻代大小设置为特定大小(如通过传递'-Xmn,-XX:NewRatio'参数设置)。G1 GC算法在运行时修改了年轻代的大小,以达到其暂停时间目标。如果显式配置了年轻一代的大小,则将无法实现暂停时间目标。
 
3.删除旧的参数
从其他GC算法(CMS,Parallel等)转移到G1 GC算法时,请删除所有与旧GC算法有关的JVM参数。通常,将旧的GC算法参数传递给G1不会产生任何效果,甚至可能以否定的方式做出响应。
 
4.消除字符串重复
由于编程效率低下,现代应用程序浪费了大量内存。这是一个案例研究,显示了Spring Boot框架浪费的内存。内存浪费的主要原因之一是字符串的重复。最近的一项研究表明,应用程序内存的13.5%包含重复的字符串。当您传递'-XX:+UseStringDeduplication'参数时,G1 GC提供了消除重复字符串的能力。
如果您在Java 8 update 20及更高版本上运行,则可以考虑将此参数传递给应用程序。它具有改善整体应用程序性能的潜力。