Đối với mã Java chạy lâu, sử dụng nhiều bộ nhớ động, có thể gặp lỗi Out-Of-Memory do thiếu không gian heap.
Chương trình dưới đây kiểm tra không gian heap Java miễn phí. Nếu heap dùng hơn 90%, garbage collector được gọi tường minh. System.gc() chặn luồng gọi cho đến khi GC hoàn tất, nên code này nên chạy trong thread riêng.
Ví dụ
public class GCTest {
public void runGC() {
Runtime runtime = Runtime.getRuntime();
long memoryMax = runtime.maxMemory();
long memoryUsed = runtime.totalMemory() - runtime.freeMemory();
double memoryUsedPercent = (memoryUsed * 100.0) / memoryMax;
System.out.println("memoryUsedPercent: " + memoryUsedPercent);
if (memoryUsedPercent > 90.0)
System.gc();
}
public static void main(String args[]) {
GCTest test = new GCTest();
test.runGC();
}
}
Kết quả
memoryUsedPercent: 0.07187129404943532