2013-02-11 3 views
10

HotSpot Java의 VM 인수 호출이 -client, -server 또는 계층화 된 컴파일 옵션을 사용하여 실행 중인지 알고 싶습니다. VM 인수를 제공하지 않으면 어떤 인수가 기본적으로 선택됩니까? JIT 컴파일러가 실행중인 진단을 출력하는 방법이 있습니까?어떤 Java HotSpot JIT 컴파일러가 실행 중입니까?

예를 들어
-XshowSettings:vm 

, 내 Windows 상자에 내가의 출력을 얻을 :

답변

4

이 핫스팟이다 가정하면 실행되는 프로그램에서

VM settings: 
    Max. Heap Size (Estimated): 1.77G 
    Ergonomics Machine Class: client 
    Using VM: Java HotSpot(TM) 64-Bit Server VM 
+0

감사합니다. Jon. OS X에서 핫스팟을 실행하고 있지만 Java 1.6 및 1.7에서는 옵션을 인식 할 수 없습니다. –

+0

@JulienChastang : 그건 이상한 일입니다. Windows와 Linux 모두 저로서는 괜찮습니다. 'java -X'는 무엇을 보여줍니까? –

+0

실례합니다. 실제로 1.6에서는 인식 할 수 없지만, 1.7에서는 위에서 제공 한 정보를 제공합니다. 흥미롭게도, java -client -XshowSettings : vm을 제공 할 때 여전히 서버라고 주장합니다. Charles Nutter (http://blog.headius.com/2009/01/my-favorite-hotspot-jvm-flags.html)는 64 비트를 사용하는 경우 -server가 유일한 옵션임을 제안하는 것으로 보입니다. 오라클로부터 이것에 대한 명확성을 얻는 것이 좋을 것입니다. –

2

을, 당신은 차별화하기 위해 java.vm.name 속성을 쿼리 수 클라이언트와 서버 모드 사이. 핫스팟에는 해당 옵션을 사용한 경우 "서버"가 포함됩니다 (예 : Java HotSpot(TM) 64-Bit Server VM). this page에 따르면

:

계층 컴파일 이제 서버 VM의 기본 모드입니다.

참고 : 현재 작동하지만 미래 보장 방법이 아닙니다.

0

사용중인 JIT 컴파일러를 확인하는 방법이 약간 더 좋습니다. 32 비트 JDK8있는 Windows 시스템에서

:

 
    $ java -version 
    java version "1.8.0" 
    Java(TM) SE Runtime Environment (build 1.8.0-b132) 
    Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode) 

    $ java -XshowSettings -version 2>&1 | grep sun.management.compiler 
     sun.management.compiler = HotSpot Client Compiler 

    $ java -server -XshowSettings -version 2>&1 | grep sun.management.compiler 
     sun.management.compiler = HotSpot Tiered Compilers 

그래서 클라이언트 컴파일러는 Windows 32 비트 JDK8 하고 '-server'옵션은 당신에게 32 비트 계층을 얻을 수와 기본이다 컴파일러. 64 비트 JDK8있는 Windows 시스템에서

는 :
 
    $ java -version 
    java version "1.8.0" 
    Java(TM) SE Runtime Environment (build 1.8.0-b132) 
    Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode) 

    $ java -XshowSettings -version 2>&1 | grep sun.management.compiler 
     sun.management.compiler = HotSpot 64-Bit Tiered Compilers 

따라서 계층 컴파일러는 Windows 64 비트 JDK8와 기본값입니다. Oracle은 64 비트 클라이언트 VM을 제공하지 않습니다.