当我使用OpenJDK 11(Zulu分发版在Windows 10上)编译并运行以下非常简单的Java程序时:
这种情况在我使用Oracle的Java 8运行时不会发生。
为什么会这样呢?
public class GCTest {
public static void main(String[] args) {
System.out.println("Free memory before garbage collection: " + Runtime.getRuntime().freeMemory());
Runtime.getRuntime().gc();
System.out.println("Free memory after garbage collection: " + Runtime.getRuntime().freeMemory());
}
}
看起来垃圾收集正在减少可用内存的数量:
Free memory before garbage collection: 266881496
Free memory after garbage collection: 7772200
这种情况在我使用Oracle的Java 8运行时不会发生。
Free memory before garbage collection: 254741016
Free memory after garbage collection: 255795064
为什么会这样呢?