2013-02-11 44 views
10

मैं जानना चाहता हूं कि हॉटस्पॉट जावा का मेरा कोई वीएम तर्क आमंत्रण क्लाइंट, -सर्वर, या टियर संकलन विकल्पों के साथ चल रहा है या नहीं। जब मैं कोई वीएम तर्क नहीं देता, तो डिफ़ॉल्ट रूप से कौन सा चुना जाता है? क्या जीआईटी कंपाइलर चल रहा है जिसके बारे में डायग्नोस्टिक्स आउटपुट करने का कोई तरीका है?कौन सा जावा हॉटस्पॉट जेआईटी कंपाइलर चल रहा है?

उत्तर

4

यह मानते हुए हॉटस्पॉट है:

-XshowSettings:vm 

उदाहरण के लिए, मेरे Windows बॉक्स पर मैं के उत्पादन में मिलती है:

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

धन्यवाद जॉन। मैं ओएस एक्स पर हॉटस्पॉट चला रहा हूं, लेकिन जावा 1.6 और 1.7 के लिए विकल्प अपरिचित है, हां। –

+0

@ जुलिएन चास्टांग: यह अजीब बात है - यह विंडोज और लिनक्स दोनों पर मेरे लिए ठीक है। 'जावा-एक्स' क्या दिखाता है? –

+0

मेरा बुरा। असल में 1.6 पर यह अपरिचित है, लेकिन 1.7 पर यह मुझे ऊपर दी गई जानकारी प्रदान करता है। उत्सुकता से, जब मैं जावा-क्लाइंट -XShowSettings की आपूर्ति करता हूं: vm यह अभी भी सर्वर होने का दावा करता है। चार्ल्स न्यूटर (http://blog.headius.com/2009/01/my-favorite-hotspot-jvm-flags.html) ऐसा लगता है कि यदि आप 64 बिट पर हैं, तो सर्वर ही एकमात्र विकल्प है। ओरेकल से इसके बारे में कुछ स्पष्टता प्राप्त करना अच्छा लगेगा। –

2

प्रोग्राम है जो चलाया जाता है से, आप को अलग करने के java.vm.name संपत्ति क्वेरी सकता है क्लाइंट और सर्वर मोड के बीच। हॉटस्पॉट पर यदि आप उस विकल्प का उपयोग करते हैं तो इसमें "सर्वर" होगा (उदाहरण के लिए: Java HotSpot(TM) 64-Bit Server VM)।

this page के अनुसार:

स्तरीय संकलन अब सर्वर वीएम लिए डिफ़ॉल्ट मोड है।

नोट: यह अब काम करता है लेकिन शायद भविष्य का सबूत दृष्टिकोण नहीं है।

0

यह निर्धारित करने का थोड़ा बेहतर तरीका कि कौन सा जेआईटी कंपाइलर उपयोग में है।

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-bit JDK8 और '-server' विकल्प आपको 32-बिट स्तरीय हो जाता है के साथ डिफ़ॉल्ट है संकलक।

एक Windows मशीन 64-बिट JDK8 साथ पर:

 
    $ 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-bit JDK8 साथ डिफ़ॉल्ट है। ओरेकल 64-बिट क्लाइंट वीएम प्रदान नहीं करता है।