
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
昆明达内培训的小编这一期给大家讲JVM内存调优,主要是减少GC的频率和减少Full GC的次数,Full GC的时候会极大地影响系统的性能。所以在此基础上,更加要关注会导致Full GC的情况。
4.1容易导致Full GC的情况
年老代空间不足
1)分配足够大空间给old gen。
2)避免直接创建过大对象或者数组,否则会绕过年轻代直接进入年老代。
3)应该使对象尽量在年轻代就被回收,或待得时间尽量久,避免过早的把对象移进年老代。
方法区的永久代空间不足
1)分配足够大空间给。
2)避免创建过多的静态对象。
被显示调用System.gc()
通常情况下不要显示地触发GC,让JVM根据自己的机制实现。
4.2 JVM堆内存分配问题讨论
4.2.1年轻代过小(年老代过大)
导致频繁发生GC,增大系统消耗
容易让普通大文件直接进入年老代,从而更容易诱发Full GC。
4.2.2年轻代过大(年老大过小)
导致年老代过小,从而更容易诱发Full GC。
GC耗时增加,降低GC的效率。
4.2.3 Eden过大(survivor过小)
Minor GC时容易让普通大文件直接绕过survivor进入年老代,从而更容易诱发Full GC。
4.2.4Eden过小(survivor过大)
导致GC频率升高,影响系统性能。
4.3调优策略
保证系统吞吐量优先
减少GC暂停时间优先