Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

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.07187129404943532