हॉटस्पॉट (वर्चुअल मशीन)

हॉटस्पॉट, जावा हॉटस्पॉट प्रदर्शन इंजन के रूप में जारी किया गया, डेस्कटॉप कंप्यूटर और सर्वर (कंप्यूटिंग) कंप्यूटर के लिए एक जावा वर्चुअल मशीन है, जिसे सन माइक्रोसिस्टम्स द्वारा विकसित किया गया है और अब Oracle Corporation द्वारा इसका रखरखाव और वितरण किया जाता है। यह समय-समय पर संकलन और अनुकूली अनुकूलन जैसे तरीकों के माध्यम से बेहतर प्रदर्शन की सुविधा देता है।

इतिहास
जावा हॉटस्पॉट प्रदर्शन इंजन 27 अप्रैल, 1999 को जारी किया गया था। मजबूत बात नाम की प्रोग्रामिंग भाषा स्मॉलटाक के कार्यान्वयन से तकनीकों पर निर्मित, मूल रूप से लॉन्गव्यू टेक्नोलॉजीज द्वारा विकसित किया गया था, जो एनीमॉर्फिक के रूप में कारोबार करता था। लॉन्गव्यू वर्चुअल मशीन स्वयं (प्रोग्रामिंग भाषा) वर्चुअल मशीन पर आधारित थी, जिसमें फास्ट-एंड-डंब फर्स्ट कंपाइलर की जगह एक दुभाषिया था। जब सन ने सेल्फ प्रोजेक्ट को रद्द कर दिया, तो दो प्रमुख लोगों, उर्स होल्ज़ले और लार्स बाक (कंप्यूटर प्रोग्रामर) ने लॉन्गव्यू शुरू करने के लिए सन को छोड़ दिया। 1997 में, सन माइक्रोसिस्टम्स ने एनिमॉर्फिक को खरीद लिया। एनिमॉर्फिक प्राप्त करने के कुछ समय बाद, सन ने जावा वर्चुअल मशीन के लिए एक नया जस्ट-इन-टाइम संकलन | जस्ट-इन-टाइम (JIT) कंपाइलर लिखने का फैसला किया। यह नया कंपाइलर सॉफ़्टवेयर के व्यवहार से प्राप्त हॉटस्पॉट नाम को जन्म देगा: चूंकि यह जावा बाइटकोड चलाता है, जैसा कि सेल्फ वीएम के साथ होता है, हॉटस्पॉट लगातार हॉट स्पॉट (कंप्यूटर प्रोग्रामिंग) के लिए प्रोग्राम के प्रदर्शन का विश्लेषण करता है जो अक्सर या बार-बार निष्पादित होते हैं। इसके बाद इन्हें ऑप्टिमाइज़ेशन (कंप्यूटर साइंस) के लिए लक्षित किया जाता है, जिससे कम प्रदर्शन-महत्वपूर्ण कोड के लिए न्यूनतम ओवरहेड के साथ उच्च-प्रदर्शन निष्पादन होता है। एक रिपोर्ट में, JVM ने कुछ बेंचमार्क में C++ या C (प्रोग्रामिंग लैंग्वेज) कोड को पीछे छोड़ दिया। प्रारंभ में जावा 1.2 के लिए ऐड-ऑन के रूप में उपलब्ध है, Java 1.3 में HotSpot डिफ़ॉल्ट Sun JVM बन गया।

विशेषताएं
जावा क्रम पर्यावरण (मूल रूप से सन से, अब ओरेकल से) में दो वर्चुअल मशीन हैं, एक को क्लाइंट और दूसरे को सर्वर कहा जाता है। क्लाइंट संस्करण को त्वरित लोडिंग के लिए ट्यून किया गया है। यह व्याख्या का उपयोग करता है। सर्वर संस्करण अधिक धीमी गति से लोड होता है, उच्च प्रदर्शन प्राप्त करने के लिए अत्यधिक अनुकूलित जस्ट-इन-टाइम संकलन बनाने में अधिक प्रयास करता है। दोनों वीएम केवल अक्सर चलने वाली विधियों को संकलित करते हैं, कॉन्फ़िगर करने योग्य आमंत्रण-गणना थ्रेसहोल्ड का उपयोग करके यह तय करने के लिए कि कौन सी विधियों को संकलित करना है।

टायर्ड संकलन, जावा 7 में पेश किया गया एक विकल्प, सर्वर कंपाइलर की तुलना में तेज़ स्टार्टअप समय प्रदान करने के लिए क्लाइंट और सर्वर कंपाइलर दोनों का उपयोग करता है, लेकिन समान या बेहतर चरम प्रदर्शन। जावा 8 में शुरू, स्तरित संकलन सर्वर वीएम के लिए डिफ़ॉल्ट है। हॉटस्पॉट सी ++ और असेंबली में लिखा गया है। 2007 में, सन ने अनुमान लगाया कि इसमें स्रोत कोड की लगभग 250,000 पंक्तियाँ शामिल हैं। हॉटस्पॉट प्रदान करता है:
 * एक जावा क्लास लोडर
 * एक टेम्प्लेटिंग जावा बाइटकोड इंटरप्रेटर (कंप्यूटिंग)
 * क्लाइंट और सर्वर जस्ट-इन टाइम कंपाइलर्स, उनके संबंधित उपयोगों के लिए अनुकूलित
 * कई कचरा संग्रह (कंप्यूटर विज्ञान) (बहुत कम-विराम-समय जेडजीसी और पॉज़लेस शेनानडोह सहित)
 * सहायक रनटाइम पुस्तकालयों का एक सेट

जेवीएम झंडे
वर्चुअल मशीन निष्पादन के विकल्पों के लिए हॉटस्पॉट कई कमांड-लाइन तर्कों का समर्थन करता है। कुछ मानक हैं और किसी भी अनुरूप जावा वर्चुअल मशीन में पाए जाने चाहिए; अन्य हॉटस्पॉट के लिए विशिष्ट हैं और अन्य जेवीएम में नहीं मिल सकते हैं (विकल्प जो -X या -XX से शुरू होते हैं वे गैर-मानक हैं)।

लाइसेंस
13 नवंबर 2006 को, हॉटस्पॉट जेवीएम और जावा विकास किट (जेडीके) को जीएनयू जनरल पब्लिक लाइसेंस (जीपीएल) संस्करण 2 के तहत लाइसेंस दिया गया था। यह वह कोड है जो जावा संस्करण इतिहास#Java SE 7 का हिस्सा बन गया।

Oracle
द्वारा अनुरक्षित संपूर्ण जावा डेवलपमेंट किट (JDK) की तरह, हॉटस्पॉट को Microsoft Windows, Linux, और macOS पर Oracle Corporation द्वारा समर्थित किया गया है। समर्थित निर्देश समुच्चय आर्किटेक्चर (ISAs) x86-64 और AArch64 हैं। JDK 15 के बाद से Solaris (ऑपरेटिंग सिस्टम) और SPARC अब समर्थित नहीं हैं।

तृतीय पक्षों द्वारा बंदरगाह
विभिन्न अन्य यूनिक्स ऑपरेटिंग सिस्टम के लिए पोर्ट तीसरे पक्ष द्वारा भी उपलब्ध हैं। कई अलग-अलग हार्डवेयर आर्किटेक्चर समर्थित हैं, जिनमें x86, PowerPC, और SPARC (Solaris केवल) शामिल हैं।

हॉटस्पॉट को पोर्ट करना कठिन है, क्योंकि इसका अधिकांश भाग असेम्बली भाषा में लगभग व्यापक रूप से लिखा गया है, हालांकि इसके कई खंड विशुद्ध रूप से C++|मानकों के अनुरूप ISO C++ में भी लिखे गए हैं। इसका समाधान करने के लिए, IcedTea परियोजना ने हॉटस्पॉट इंटरप्रेटर (कंप्यूटिंग) का एक सामान्य पोर्ट विकसित किया है जिसे शून्य-असेंबलर हॉटस्पॉट (या शून्य) कहा जाता है, जिसमें लगभग कोई असेंबली कोड नहीं है। यह पोर्ट हॉटस्पॉट के दुभाषिया घटक के किसी भी लिनक्स प्रोसेसर आर्किटेक्चर के आसान अनुकूलन के लिए है। शून्य-असेंबलर हॉटस्पॉट का कोड 1.6 संस्करण के बाद से हॉटस्पॉट (पावरपीसी, इटेनियम (आइए-64), आईबीएम सिस्टम z9 9 और एआरएम वास्तुकला) के सभी गैर-x86 आर्किटेक्चर बंदरगाहों के लिए प्रयोग किया जाता है।

यह भी देखें

 * जावा वर्चुअल मशीनों की सूची
 * जावा वर्चुअल मशीनों की तुलना
 * जावा प्रदर्शन
 * ओपनजेडीके
 * दा विंची मशीन, गतिशील प्रोग्रामिंग भाषाओं के लिए समर्थन जोड़ने के लिए जेवीएम के विस्तार को प्रोटोटाइप करने की परियोजना

बाहरी संबंध

 * A list of HotSpot VMOptions
 * The Java Virtual Machine Specification
 * History of the original Strongtalk-HotSpot team
 * HotSpot Mercurial source code development repository (version control system) for JDK8
 * HotSpot Mercurial source code development repository (version control system) for JDK8
 * HotSpot Mercurial source code development repository (version control system) for JDK8