如何檢查 Java 中程式使用的記憶體?


對於一個長期執行的 java 程式碼來說,該程式碼大量使用動態記憶體,最終可能會因堆空間記憶體不足而導致記憶體溢位錯誤。

在下面的程式中,我們可以測試程式使用的可用 java 堆空間。如果堆空間使用超過 90%,則顯式呼叫垃圾回收器。System.gc() 呼叫會阻塞呼叫執行緒,直到垃圾回收器完成。因此,此程式碼可以在單獨的執行緒中執行。

示例

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();
   }
}

輸出

memoryUsedPercent: 0.19245147705078125

更新時間: 2023-11-24

2K+ 瀏覽

開啟你的 職業生涯

完成課程方可獲得認證

開始吧
廣告
© . All rights reserved.