जेवीएम और हॉटस्पॉट के बीच अंतर?


147

वास्तव में हॉटस्पॉट क्या है और यह JVM और OpenJDK से कैसे संबंधित है? यह एक पुस्तकालय है? यह वास्तव में क्या करता है?

इसके अलावा, OpenJDK और हॉटस्पॉट के बीच अंतर क्या है?

जवाबों:


148

जावा वर्चुअल मशीन विशिष्टता में जावा वर्चुअल मशीन क्या है, इसकी परिभाषा बताई गई है

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

हॉटस्पॉट JVM अवधारणा का कार्यान्वयन है। यह मूल रूप से सूर्य द्वारा विकसित किया गया था और अब यह ओरेकल के स्वामित्व में है। JVM विनिर्देश के अन्य कार्यान्वयन हैं, जैसे JRockit , IBM J9 , कई अन्य।

जावा वर्चुअल मशीन कार्यान्वयन की सूची देखें

OpenJDK एक परियोजना है जिसके तहत हॉटस्पॉट (और JDK जैसे संकलक, एपीआई, उपकरण, आदि के कई अन्य टुकड़े) के एक खुला स्रोत कार्यान्वयन विकसित किया गया है।


25

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

OpenJDK जावा प्लेटफ़ॉर्म, स्टैंडर्ड एडिशन (जावा एसई) विनिर्देशों का एक ओपन-सोर्स कार्यान्वयन है। मई 2007 में, Sun ने GNU जनरल पब्लिक लाइसेंस संस्करण दो (GPLv2) के तहत मुफ्त सॉफ्टवेयर के रूप में OpenJDK समुदाय के लिए जावा SE के लिए एक पूरी तरह से निर्माण योग्य जावा डेवलपमेंट किट (JDK) संस्करण जारी किया। सन ने ओपनजेडके समुदाय के लिए अंतरिम गवर्निंग बोर्ड की घोषणा की। सन ने यह भी घोषणा की कि ओपनजेडके-आधारित कार्यान्वयन जावा एसई 6 विनिर्देश के साथ संगतता स्थापित करने के लिए जावा एसई 6 तकनीकी संगतता किट (जेसीके) का उपयोग कर सकते हैं।

OpenJDK परियोजना - घटकों के एक नंबर के होते हैं हॉटस्पॉट (आभासी मशीन) उस पर, उसके जाएँ अधिक, जावा कक्षा लाइब्रेरी और javac जावा compiler.For साइट

Sun / Oracle द्वारा उपलब्ध कराए गए वर्तमान JVM को हॉटस्पॉट कहा जाता है क्योंकि यह "जस्ट-इन-टाइम" ऑप्टिमाइज़ेशन के लिए कोड (उन स्थानों पर जहाँ कोड का अधिक गहन उपयोग किया जाता है) में उपयोग के हॉट स्पॉट की तलाश करता है। से विकिपीडिया , हॉटस्पॉट, "जावा हॉटस्पॉट प्रदर्शन इंजन" के रूप में जारी डेस्कटॉप और सर्वर, बनाए रखा और Oracle कार्पोरेशन द्वारा वितरित करने के लिए एक जावा आभासी मशीन है।


मैंने सुना है OpenJDK भी कोड निष्पादित करने के लिए HotSpot का उपयोग करता है? क्या यह सच है?
जस्टिन

@ TheNewIdiot, तो आप कह रहे हैं कि हॉटस्पॉट OpenJDK का हिस्सा है? या फिर एक मालिकाना हॉटस्पॉट भी है जैसा कि ऊपर दिए गए सुझाव से पता चलता है?
पैसिफायर

@ NINC, तो हॉटस्पॉट OracleJDK और OpenJDK दोनों का हिस्सा है? Hotspot = JRockit = OracleJDK = OpenJDK?
पेसरियर

12

नोट: AdoptOpenJDK के लिए इसका नाम बदल गया है Adoptium देर 2020-06 में ग्रहण फाउंडेशन में जाने के बाद।


जेवीएम और हॉटस्पॉट के बीच अंतर?

एक जावा वर्चुअल मशीन (JVM) एक काल्पनिक कंप्यूटर है जिसे कभी भी भौतिक रूप से हार्डवेयर के रूप में नहीं बनाया गया है। एक JVM अपने काल्पनिक अनुदेश संकलित कार्यक्रमों को संकलित करता है जिसे एक मध्यवर्ती प्रतिनिधित्व के रूप में भंडारण के लिए लिखा जाता है जिसे बायटेकोड के रूप में जाना जाता है

रनटाइम के दौरान, बायोटकोड को काल्पनिक निर्देश सेट से होस्ट मशीन के सीपीयू के वास्तविक अनुदेश सेट में अनुवाद किया जाना चाहिए। यह एक दुभाषिया द्वारा ऑन-द-फ्लाई किया जा सकता है। या बायटेकोड को पूरी तरह से संकलित और कैश्ड किया जा सकता है, इंटरप्रेटर के माध्यम से तेजी से चलाने के लिए, जस्ट-इन-टाइम (जेआईटी) संकलन के रूप में जाना जाता है ।

दशकों में, JVM के कई कार्यान्वयन हुए हैं । अधिकांश गिर गए हैं।

हॉटस्पॉट जेआईटी तकनीक का एक कार्यान्वयन है जो व्याख्या के द्वारा शुरू होता है, और ऐप के वास्तविक प्रदर्शन को देखता है। एप्लिकेशन के कुछ हिस्सों को तब बहुत तेजी से निष्पादन के लिए देशी कोड और कैश्ड के रूप में पूरी तरह से संकलित करने के लिए चुना जाता है। हॉटस्पॉट कोएक व्यावसायिक उत्पाद के रूपमें सूर्य मेंविकसित किया गया था। सन को प्राप्त करने के बाद, ओरेकल ने अपने प्रतिस्पर्धी उत्पाद, JRockit के महत्वपूर्ण भागों को मिलाकर हॉटस्पॉट विकसित किया। हॉटस्पॉट अब OpenJDK परियोजना केमाध्यम सेउपलब्ध है, जो मुफ्त में उपलब्ध है।

OpenJ9 में इस तरह का एक अन्य कार्यान्वयन , आईबीएम द्वारा विकसित किया गया है, और अब ग्रहण फाउंडेशन के माध्यम से खुला- उपलब्ध है और मुफ्त में उपलब्ध है। OpenJDK पर निर्मित कुछ JVM वितरण, OpenJD के साथ HotSpot की जगह लेते हैं, जबकि अभी भी OpenJDK के शेष भाग जैसे कि Java SE क्लास लाइब्रेरी का उपयोग करते हैं। उदाहरण के लिए, AdoptOpenJDK पर उपलब्ध पूर्व-निर्मित वितरण कुछ हार्डवेयर पर HotSpot या OpenJ9 की आपकी पसंद प्रदान करते हैं ।

हॉटस्पॉट और JRockit विलय के इतिहास को दर्शाने वाला, और AdoptOpenJDK में उपलब्ध OpenJ9 दोनों।

हॉटस्पॉट और JRockit विलय, और OpenJ9 दोनों को AdoptOpenJDK में उपलब्ध दिखाने वाला आरेख

वास्तव में हॉटस्पॉट क्या है और यह JVM और OpenJDK से कैसे संबंधित है? यह एक पुस्तकालय है? यह वास्तव में क्या करता है?

  • हॉटस्पॉट एक JVM के हिस्से का एक कार्यान्वयन है जो जावा CPU को होस्ट CPU पर निष्पादित करने के लिए व्याख्या और / या संकलन करता है।
  • OpenJ9 एक विकल्प है।

OpenJ9 को आम तौर पर बहुत तेजी से शुरू करने और बहुत कम मेमोरी उपयोग के लिए जाना जाता है, जबकि हॉटस्पॉट लंबे समय तक चलने वाले ऐप्स के लिए अधिक कुशलतापूर्वक चल सकता है। दोनों अच्छी तरह से, अच्छी तरह से पहने हुए हैं और OpenJDK के वितरण के साथ उपलब्ध हैं।

OpenJDK एक ओपन-सोर्स प्रोजेक्ट है, जो जावा प्लेटफॉर्म को परिभाषितकरने वाले जावा स्पेसिफिकेशन्स , JSR s और JEP को पूरी तरह से लागू करता है । आज के प्रत्येक जेवीएम कार्यान्वयन को मैं पूरी तरह से या ज्यादातरओपनजेडके कोडबेस पर आधारितकरता हूं और हॉटस्पॉट या ओपनजे 9 तकनीक का उपयोग करता हूं।

JVM के अलावा, OpenJDK जावा एसई विनिर्देशों, जैसे java.lang , java.util , java.time , और अन्य पैकेजों के लिए आवश्यक सभी वर्गों के लिए स्रोत कोड में एक कार्यान्वयन प्रदान करता है।

इसके अलावा, OpenJDK और हॉटस्पॉट के बीच अंतर क्या है?

हॉटस्पॉट के लिए सोर्स कोड OpenJDK प्रोजेक्ट के हिस्से के रूप में रखा गया है, बनाए रखा गया है और आगे विकसित किया गया है । ओपनजेडीके के कुछ वितरणों में हॉटस्पॉट की जगह लेते हुए , विकल्प, ओपनजे 9 को ग्रहण फाउंडेशन में रखा गया है, बनाए रखा गया है, और आगे विकसित किया गया है ।

जावा प्रौद्योगिकी के कुछ वितरण हॉटस्पॉट के साथ जहाज का चयन करते हैं। कुछ वितरण OpenJDK कोडबेस के उस हिस्से को स्थानापन्न करने का विकल्प चुनते हैं , जो विकल्प, OpenJ9 के साथ हॉटस्पॉट है

जावा प्लेटफ़ॉर्म के वितरण के लिए एक विक्रेता को चुनने में आपकी मदद करने के लिए यहां एक फ़्लोचार्ट ग्राफिक है।

फ्लोचार्ट जावा 11 कार्यान्वयन के लिए एक विक्रेता को चुनने में आपका मार्गदर्शन करता है

जावा के लिए एक विक्रेता को चुनने में प्रेरणा


8

हॉटस्पॉट, जैसा कि ऊपर बताया गया है, जीएनयू जनरल पब्लिक लाइसेंस के तहत जावा वर्चुअल मशीन (जेवीएम) कॉन्सेप्ट का एक क्रॉस-प्लेटफॉर्म कार्यान्वयन है, और ओपनजेडके (जावा डेवलपर किट) के साथ वितरित किया गया है। हॉटस्पॉट मुख्य रूप से C ++ में लिखा गया है, और मूल रूप से सन माइक्रोसिस्टम्स के तहत विकसित किया गया था। वर्तमान में यह www.java.net पर OpenJDK प्रोजेक्ट के तहत विकसित किया गया है। हॉटस्पॉट JVM जावा 1.2 के लिए ऐड-ऑन के रूप में उपलब्ध था, और बाद में जावा 1.3 में डिफ़ॉल्ट Sun JVM के रूप में उपयोग किया गया था। जेवीएम वर्तमान में संस्करण 7, बिल्ड बी 147 में है, और इसके पीछे एक सक्रिय विकास समुदाय है।

अधिक जानकारी के लिए, गोटो: https://www.java.net/

हैप्पी कोडिंग!


7

जेवीएम एक अमूर्त मशीन (विनिर्देशों) है। हॉटस्पॉट, OpenJDK और JRockit और इसलिए JVM के कार्यान्वयन हैं।

स्वतंत्र और खुला स्रोत कार्यान्वयन

  • हॉटस्पॉट , प्राथमिक संदर्भ जावा वीएम कार्यान्वयन

  • OpenJDK - ओपन जावा डेवलपमेंट किट एक स्वतंत्र और खुला स्रोत कार्यान्वयन है जो एक लिंकिंग अपवाद के साथ GNU जनरल पब्लिक लाइसेंस (GNU GPL) के तहत लाइसेंस प्राप्त है।

मालिकाना कार्यान्वयन

  • JRockit (मूल रूप से अपील आभासी मशीनों से) लिनक्स, विंडोज और सोलारिस के लिए ओरेकल द्वारा अधिग्रहित

अधिक कार्यान्वयन
लिंक के लिए हॉटस्पॉट और JRocket के बीच अंतर बताते हैं


-25

हॉटस्पॉट C ++ हैकिंग का एक उन्नत रूप है, इसका उपयोग करने के लिए आपको इसे सबसे सरल चीजों को संकलित करने के लिए इसके खिलाफ निर्माण करना होगा। जब तक आप संकलक को ट्यून नहीं करते हैं या उन्हें खरोंच से नहीं लिखते हैं। हॉटस्पॉट मूल रूप से स्रोत कोड को C ++ कोड में परिवर्तित करने का एक तरीका है और फिर इसे मूल कोड में संकलित किया जाता है, इस प्रकार यह शब्द संकलित होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.