먼저 코드 실행 전에 사용 된 메모리, 즉 코드의 첫 번째 행을 계산하십시오.
long afterUsedMem=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
그럼 당신은 할 수 있습니다 :
long actualMemUsed=afterUsedMem-beforeUsedMem;
그것은 당신에게 당신의 프로그램에 의해 사용되는 실제 메모리를 줄 것이다 -이 :
long beforeUsedMem=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
은 당신의 코드 실행 후 사용되는 메모리를 계산합니다.
더 나은 메모리 분석을 위해서는 jvisualvm과 같은 프로파일 러 도구가 가장 좋습니다.
- 는 Runtime.getRuntime(). totalMemory()는,이 메모리 이 JVM에 사용 가능한 총 메모리인지, 기억하십니까.
- 자바 -Xms512m -Xmx1024m, 그것은 프로그램 의 총 메모리가 느리게 1,024메가바이트의 최대로드 할 수있다, 512MB로 시작된다는 것을 의미합니다.
- 따라서 동일한 프로그램을 다른 JVM에서 실행중인 경우 Runtime.getRuntime(). totalMemory()가 다른 결과를 줄 수 있습니다.
온라인 컴파일러는 무엇입니까? – Onur
일반적으로 응용 프로그램의 성능/메모리 "동작"을 이해해야하는 경우 프로파일 링 도구를주의 깊게 조사해야합니다. 시간이 지남에 따라 관찰하고 싶습니다. 귀하의 질문에 언급 된 것과 같은 전화를 사용하여 한 번 스냅 샷을 찍는 것은 매우 제한된 정보만을 제공 할 수 있습니다. – GhostCat
@ omn codechef.com/ide는 내가 편집을 원했던 하나입니다. –