2013-07-31 6 views
2

어디 있습니까 이들 장소 외에 hostspot의 JVM 프로세스를 저장 메모리 :핫스팟 Java/JVM은 메모리를 어떻게 저장합니까?

  • 파마 세대
  • 종신 세대
  • 에덴 공간 공간에서
  • 공간
  • 코드 캐시

즉 : hotspot 프로세스가 & 머신에 메모리를 예약하여 해당 메모리가 이 아닌이 해당 장소 중 하나에 대한 통계에 표시되도록하는 방법은 무엇입니까?

내가 생각할 수있는 몇 가지 답변을 (이 해당하는 경우 알려주세요) : 스레드 스택에 사용

  • 가상 메모리는 그 숫자
  • 로드 된 DLL을 나 파일에 표시되지 않습니다.

편집 :

다른 답변을 제공 : (. 예를 들어, DLL을에서)

  • java.exe를 자체
  • JNI 방법은 메모리 자체
  • 네이티브 코드를 할당 할 수 할당 할 수 기억.
  • 자체 실행을위한 일반 JVM 메타 데이터.
+0

네이티브 코드가 자체 메모리를 할당합니다. 이것은 엄밀히 말하면 JVM 외부에서 실행되지만 프로그램이 더 많은 메모리를 사용하게 될 것이므로이 수가보고됩니다. –

+0

위의 모든 "공백"은 특정 JVM 제품군 (핫스팟)을 나타냅니다. 모든 JVM에는 "에덴 공간"또는 "공백"이 있다는 것은 없습니다. JVM 프로세스에있는 세 가지 주요 공간은 주 오브젝트 힙, 클래스 정보 및 코드에 사용되는 힙 및 JVM 내부에서 사용되는 "비 Java"힙입니다. (실행 스택이 또 다른 "공간"이라고 주장하거나 "Java가 아닌"것으로 간주 할 수 있습니다.) –

답변

1

지금까지 (DLL에는 모든 JNI 라이브러리와 할당 된 메모리가 모두 포함되어 있습니다.) 정확한 내용입니다. VM은 또한 자신의 코드 (예를 들어, java의 내용), 부기 정보 , Java 프로그램에 할당 된 메모리 및 잠재적으로 VM 에이전트에 의해 사용되는 메모리를 갖는다. 기본적으로 첫 번째 목록에서 설명한 내용은 가상 컴퓨터의 "실행 메모리"를 구성하는 항목입니다. 나머지 JVM 메모리는 OS의 네트워킹, 그래픽 등에 연결하는 라이브러리와 같이 가상 시스템의 "하드웨어"를 나타내는 모든 항목입니다.

+0

[메모리 매핑 된 파일] (http://msdn.microsoft.com/en-us/library/aa366556) % 28VS.85 % 29.aspx)도 힙/코덱 캐시 통계에 표시되지 않습니까? –

+1

Java에서 메모리 매핑 파일에 대해 이야기하고 있습니까? 이를 수행하는 유일한 방법은'Buffer'를 사용하는 것이지만,이 경우에는 'Buffer'에 대한 Java 필드에 대한 메모리 사용이 표시되지만 매핑 된 메모리 영역에는 사용되지 않습니다. OS가 매핑 된 메모리를 JVM 프로세스에 요금을 부과하는지 여부와 방법은 OS에 따라 다릅니다. – chrylis

+0

JVM 가상 메모리 공간에 매핑 된 메모리를 충전해야하지 않습니까? 그 과정에서 어떻게 그 과정을 읽을 수 있습니까? –

관련 문제