2013-02-11 16 views
10

HotSpot Java ürünümün VM argüman isminin -client, -server veya katmanlı derleme seçenekleri ile çalışıp çalışmadığını öğrenmek istiyorum. VM argümanları sağlamadığımda hangisi varsayılan olarak seçilir? Hangi JIT derleyicisinin çalıştığı hakkında çıkış tanılama yolu var mı?Hangi Java HotSpot JIT derleyicisi çalışıyor?

Örneğin
-XshowSettings:vm 

, benim, Windows kutuyu ben çıktısını almak:

cevap

4

bu Hotspot olduğunu varsayarsak çalıştırılan programından

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

Teşekkürler Jon. OS X'te Hotspot'u çalıştırıyorum, ancak Java 1.6 ve 1.7 için bu seçenek tanınmıyor, alas. –

+0

@JulienChastang: Bu garip - hem Windows hem de Linux'ta benim için iyi. Java -X' ne gösteriyor? –

+0

Benim hatam. Aslında 1,6 üzerinde tanınmıyor, ama 1.7'de bana yukarıda verdiğiniz bilgileri veriyor. Merakla, ben java -client -XshowSettings sağlayın: vm hala Sunucu olduğunu iddia ediyor. Charles Nutter (http://blog.headius.com/2009/01/my-favorite-hotspot-jvm-flags.html) eğer 64 bit kullanıyorsanız, -server tek seçenek. Bu konuda Oracle'dan biraz açıklık almak güzel olurdu. –

2

, sen ayırt etmek java.vm.name özelliğini sorgu olabilir İstemci ve sunucu modu arasında. Hotspot'ta bu seçeneği kullandıysanız "Sunucu" içerecektir (örneğin: Java HotSpot(TM) 64-Bit Server VM). this page göre

:

Katmanlı derleme şimdi sunucuya VM için varsayılan moddur.

Not: Şimdi çalışıyor ama muhtemelen en geleceğe yönelik bir yaklaşım değil.

0

Hangi JIT derleyicisinin kullanımda olduğunu belirlemek için biraz daha iyi bir yöntem. 32 bit JDK8 bir Windows makinede

:

 
    $ 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 

Yani istemci Derleyici Windows 32 bit JDK8 ve '-sunucu' seçeneği size 32 bitlik Katmanlı alır ile varsayılan Derleyici. 64 bit JDK8 bir Windows makinede

:
 
    $ 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 

Yani Katmanlı Derleyici Windows 64 bit JDK8 ile varsayılan değerdir. Oracle, bir 64 bit İstemci VM'si sağlamaz.

İlgili konular