2012-12-13 5 views
6

자바 VisualVM과 나의 빈 무한 루프빈 무한 루프 및 GC (JVM). 효과

public static void main(String[] args) { 
     while (true) {} 
    } 

및 프로파일 (사진) Visual GC

당신이 볼 수 있듯이, 나는 객체를 생성하지 않습니다를 설명해주십시오. 왜 힙을 변경합니까?

효과를 설명하십시오. 왜?

+0

멋진 사진! 하지만 미안하지만, 나는 당신의 질문을받지 못했습니다. – Stephan

+0

참고 : http://stackoverflow.com/questions/12711106/simple-java-program-increasingly-consuming-memory – assylias

+0

링크의 @assylias가 새 객체를 만들고 Swing. 내 예제에서는 빈 루프. – couatl

답변

7

기본적으로 모든 Java 응용 프로그램은 다중 스레드이며, 주 스레드가 메모리를 할당하지 않는다고해서 다른 사용자도 할당하지 않는다는 것을 의미하지는 않습니다. 실제로 VisualVM을 통해 연결하고 GC 탭을 표시하면 GC 리소스를 모니터링하고 반짝이는 차트가되는 메트릭을 VisualVM에 제공하기 위해 VM의 일부 스레드를 생성 할 가능성이 큽니다. 그리고 그 모니터링은 자신의 일을 수행하기위한 자원을 할당 할 것입니다.

+0

VisualVM을 연결하는 개체를 생성하지 프로그램을 프로파일 링하는 방법? – couatl

+0

나는 할 수 있다고 생각하지 않는다. 가장 많이 할 수있는 것은 OS 레벨 도구 (vmstat, top 등)를 사용하는 것입니다. 어쨌든 VisualVM으로 응용 프로그램을 모니터하지 않더라도 JMX, finalizer 스레드, AWT 스레드 등이 있습니다. 응용 프로그램에 * 백그라운드에서 일부 자원을 할당하는 일부 스레드가 있다고 가정합니다 – gpeche