자바 개발을 하다 보면은 내가 작성한 코드가 어느정도의 메모리를 사용하는지 확인해 보고 싶은 상황이 있다.
이때 사용하는 메모리양을 체크할 수 있는 코드를 작성해 보았다.
참고로 기본으로 리턴되는 메모리 용량단위는 byte이다.
package main;
public class MainClass {
public static void main(String[] args) {
// Garbage Collection으로 메모리 초기화
System.gc();
// 실행전 메모리 사용량 조회
long before = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
// 측정하고싶은 코드
int j = 0;
for(int i=0; i<100000000; i++) {
j = j+i;
}
// Garbage Collection으로 메모리 정리
System.gc();
// 실행 후 메모리 사용량 조회
long after = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
// 메모리 사용량 측정
long usedMemory = (before - after)/1024/1024;
System.out.println("Used Memory : " + usedMemory);
// 애플리케이션에 할당돈 힙메모리 사이즈. 이 사이즈를 넘어서면 OOM발생
long heapSize = Runtime.getRuntime().maxMemory();
System.out.println(heapSize/1024/1024);
}
}
'JAVA > Java' 카테고리의 다른 글
[Java] 자바 접근제어자 (Access Modifier) Public, private, default, protected 사용법 (0) | 2019.07.27 |
---|---|
[Java] 자바 메소드(method) 함수의 생성과 선언 후 사용법 (0) | 2019.07.27 |
[Java] 자바 클래스(class)와 객체(object) 생성하여 사용하기 (0) | 2019.07.27 |
<JAVA> 코드 실행 시간 측정하기 System.currentTimeMillis() (0) | 2019.06.08 |
[Java] 접근 지정자 - private, public, protected, default (0) | 2019.06.02 |
댓글