JVM提供了多种垃圾回收器,可以根据应用程序的需求选择最适合的垃圾回收器。
例如,如果应用程序需要更快的响应时间,可以选择并行垃圾回收器(Parallel GC)或并发垃圾回收器(Concurrent Mark Sweep GC)。
如果应用程序需要更低的停顿时间,可以选择增量垃圾回收器(Incremental GC)或并发的垃圾回收器(Concurrent GC)。
package jvm;
import java.util.ArrayList;
import java.util.List;
//测试代码
public class TestHeap {
public static void main(String[] args) {
List<Heap> list = new ArrayList<Heap>();
while (true) {
list.add(new Heap());
}
}
}
class Heap {
String HeapName = "Java Heap 测试";
}
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-Xloggc:d:/dump/gc1.log
分析 GC 日志,gc1.log:
-XX:+UseConcMarkSweepGC
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-Xloggc:d:/dump/cms-gc.log
分析 GC 日志,cms-gc.log:
-XX:+UseG1GC -XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-Xloggc:d:/dump/G1-gc.log
分析 GC 日志,G1-gc.log:
了解 G1 GC 日志:https://blogs.oracle.com/poonam/understanding-g1-gc-logs