نقطة اتصال
هوت سبوت ، الذي صدر باسم محرك أداء جافا هوت سبوت ، [ 1 ] هو آلة جافا افتراضية لأجهزة الكمبيوتر المكتبية والخوادم ، طورتها شركة صن مايكروسيستمز التي استحوذت عليها شركة أوراكل وأصبحت قسمًا منها في عام 2010. تشمل ميزاته تحسين الأداء من خلال أساليب مثل الترجمة الفورية والتحسين التكيفي . وهو المرجع الفعلي لآلة جافا الافتراضية.
تاريخ
أُطلق محرك الأداء Java HotSpot في 27 أبريل 1999، [ 1 ] وهو مبني على تقنيات من تطبيق لغة البرمجة Smalltalk المسماة Strongtalk ، والتي طورتها في الأصل شركة Longview Technologies، التي كانت تُعرف تجاريًا باسم Animorphic. استندت الآلة الافتراضية Longview إلى الآلة الافتراضية Self ، مع استبدال المترجم الأولي السريع والبسيط بمترجم فوري. عندما ألغت شركة Sun مشروع Self، غادر اثنان من الشخصيات الرئيسية، وهما أورس هولز ولارس باك، شركة Sun لتأسيس Longview. في عام 1997، استحوذت شركة Sun Microsystems على Animorphic. [ 3 ]
بعد فترة وجيزة من استحواذها على شركة Animorphic، قررت شركة Sun كتابة مُصرّف جديد أقوى يعمل بتقنية الترجمة الفورية (JIT) لآلة جافا الافتراضية، [ 4 ] وأطلقت عليه اسم مُصرّف خادم HotSpot (الاسم الداخلي C2)، والذي طوّره في البداية كليفورد كليك [ 5 ] وكان امتدادًا لأطروحته للدكتوراه حول تحسين المُصرّفات. [ 6 ] اسم المُصرّف HotSpot مُشتق من سلوك البرنامج: فبينما يُشغّل بايت كود جافا ، كما هو الحال مع آلة Self الافتراضية، يُحلّل HotSpot أداء البرنامج باستمرار بحثًا عن النقاط الساخنة التي تُنفّذ بشكل متكرر أو مُستمر. ثم تُستهدف هذه النقاط للتحسين ، مما يؤدي إلى تنفيذ عالي الأداء مع الحد الأدنى من الحمل الزائد للتعليمات البرمجية الأقل حساسية للأداء. في أحد التقارير، تفوّقت آلة جافا الافتراضية على بعض تعليمات C++ أو C في بعض الاختبارات المعيارية. [ 7 ]
كان HotSpot متاحًا في البداية كإضافة لـ Java 1.2، [ 8 ] وأصبح JVM الافتراضي لشركة Sun في Java 1.3. [ 9 ]
سمات
تتضمن بيئة تشغيل جافا (JRE ) (التي كانت في الأصل من شركة صن، والآن من شركة أوراكل) جهازين افتراضيين، أحدهما يُسمى العميل والآخر الخادم . تم تحسين إصدار العميل لتحميل سريع، حيث يعتمد على التفسير. أما إصدار الخادم، فيُحمّل ببطء أكبر، إذ يُبذل جهد أكبر لإنتاج عمليات تجميع JIT مُحسّنة للغاية لتحقيق أداء أعلى. يقوم كلا الجهازين الافتراضيين بتجميع الطرق الأكثر استخدامًا فقط، باستخدام عتبة قابلة للتكوين لعدد الاستدعاءات لتحديد الطرق التي سيتم تجميعها.
يستخدم التجميع المتدرج، وهو خيار تم تقديمه في Java 7، مُجمِّعي العميل والخادم معًا لتوفير وقت بدء تشغيل أسرع من مُجمِّع الخادم، مع أداء ذروة مماثل أو أفضل. [ 10 ] بدءًا من Java 8، أصبح التجميع المتدرج هو الوضع الافتراضي لآلة الخادم الافتراضية. [ 11 ]
كُتب برنامج HotSpot بلغة C++ ولغة التجميع. في عام 2007، قدّرت شركة Sun أن البرنامج يتألف من حوالي 250,000 سطر من التعليمات البرمجية المصدرية. [ 12 ] يوفر برنامج HotSpot ما يلي:
- مُحمِّل فئات جافا
- مترجم بايت كود جافا للقوالب
- مُجمِّعات فورية للعميل (C1) والخادم ( C2)، مُحسَّنة لاستخداماتها الخاصة.
- العديد من جامعي القمامة (بما في ذلك ZGC منخفض زمن الوصول و Shenandoah منخفض وقت التوقف المؤقت) [ 13 ] [ 14 ] [ 15 ]
- مجموعة من مكتبات وقت التشغيل الداعمة
- ميزات سهولة الخدمة
علامات JVM
يدعم HotSpot العديد من وسائط سطر الأوامر لخيارات تشغيل الآلة الافتراضية. بعضها قياسي ويجب أن يكون موجودًا في أي آلة افتراضية متوافقة مع Java ؛ والبعض الآخر خاص بـ HotSpot وقد لا يكون موجودًا في آلات JVM الأخرى (الخيارات التي تبدأ بـ -X أو -XX غير قياسية). [ 16 ] [ 17 ] [ 18 ] [ 19 ]
رخصة
في 13 نوفمبر 2006، تم ترخيص HotSpot JVM و Java Development Kit (JDK) بموجب رخصة جنو العمومية العامة (GPL) الإصدار 2. [ 20 ] هذا هو الكود الذي أصبح جزءًا من Java 7. [ 21 ]
المنصات المدعومة
تتم صيانته بواسطة أوراكل
كما هو الحال مع مجموعة تطوير جافا (JDK) بأكملها ، تدعم شركة أوراكل برنامج HotSpot على أنظمة ويندوز ولينكس وماك أو إس . وتدعم بنية مجموعة التعليمات (ISA) كلاً من x86-64 و AArch64 . [ 22 ] ومنذ إصدار JDK 15، لم يعد نظاما سولاريس و SPARC مدعومين. [ 23 ]
موانئ تابعة لأطراف ثالثة
تتوفر أيضًا منافذ من جهات خارجية لأنظمة تشغيل يونكس أخرى متنوعة . يتم دعم العديد من بنى الأجهزة المختلفة، بما في ذلك x86 و PowerPC و SPARC (نظام سولاريس فقط).
يُعدّ نقل برنامج HotSpot إلى أنظمة أخرى أمرًا صعبًا، نظرًا لأنّ معظمه مكتوب بلغة التجميع ، [ 24 ] على الرغم من أنّ بعض أجزائه مكتوبة أيضًا بلغة ISO C++ المتوافقة تمامًا مع المعايير . وللتغلب على هذه المشكلة، طوّر مشروع IcedTea نسخةً عامةً من مُفسّر HotSpot تُسمى Zero-assembler Hotspot (أو zero )، وهي نسخةٌ خاليةٌ تقريبًا من كود التجميع. تهدف هذه النسخة إلى تسهيل تكييف مُكوّن المُفسّر في HotSpot مع أيّ بنية معالج Linux . يُستخدم كود Zero-assembler Hotspot في جميع نسخ HotSpot التي لا تعمل على بنية x86 ( PowerPC و Itanium ( IA-64 ) و S390 و ARM ) منذ الإصدار 1.6. [ 25 ] [ 26 ] [ 27 ]
انظر أيضاً
- قائمة الآلات الافتراضية لجافا
- مقارنة بين الآلات الافتراضية لجافا
- أداء جافا
- OpenJDK
- آلة دافنشي ، مشروع لإنشاء نموذج أولي لتوسيع نطاق JVM لإضافة دعم لغات البرمجة الديناميكية
مراجع
- ١ ٢ ٣ "شركة صن تعلن عن توفر محرك الأداء Java HotSpot" . بيان صحفي . شركة صن مايكروسيستمز. مؤرشف من الأصل في ١ نوفمبر ٢٠١٣. تم الاطلاع عليه في ٢٦ مارس ٢٠١٣ .
- ↑ "JDK 26" .
- ↑ خدمات، طاقم كرونيكل والأخبار (19 فبراير 1997). "صن مايكرو تستحوذ على لونغفيو" . إس إف غيت . تم الاسترجاع في 5 نوفمبر 2020 .
- ↑ "كليف كليك يتحدث عن نظام جمع البيانات المهملة بدون توقف من Azul، وZing، ولغات JVM" . InfoQ. 2011-01-20 . تم الاطلاع عليه بتاريخ 2016-05-10 .
[...] استحوذت شركة Sun على Anamorphic، لذا كان الفريق الأصلي يعمل في شركة تحمل اسم Anamorphic، وقد قدموا تقنية كانت تستهدف Smalltalk، ثم أعادوا توجيهها للغة Java، وبعد ذلك بوقت قصير وظفوني لإنشاء JIT جديد لآلتهم الافتراضية.
- ↑ كليك، كليفورد (أبريل 2001). "مترجم خادم جافا هوت سبوت™" . JVM'01: وقائع ندوة 2001 حول أبحاث وتكنولوجيا آلة جافا الافتراضية . 1 : 1.
- ↑ "كليف كليك - بحر العقد و HotSpot JIT" . 14 فبراير 2020 - عبر يوتيوب.
- ↑ لويس، جيه بي (2004). "أداء جافا مقابل سي++" . مؤرشف من الأصل بتاريخ 24 أبريل 2020. تم الاطلاع عليه بتاريخ 3 أكتوبر 2007 .
- ↑ شانكلاند، ستيفن (18 فبراير 1999). "HotSpot يترك بصمته أخيرًا" . Cnet .
- ↑ "أصدرت شركة صن مايكروسيستمز أسرع منصة جافا من جانب العميل حتى الآن" . صن مايكروسيستمز. 8 مايو 2000. تاريخ الاسترجاع: 3 أكتوبر 2007 .
- ↑ "تحسينات أداء الآلة الافتراضية لـ Java ™ HotSpot" . docs.oracle.com .
- ↑ "تحسينات أداء الآلة الافتراضية لـ Java ™ HotSpot" . docs.oracle.com .
- ↑ "مجموعة هوت سبوت" . صن مايكروسيستمز. 2007. تم الاطلاع عليه بتاريخ 3 أكتوبر 2007.
يوجد ما يقرب من 1500 ملف رأس ومصدر بلغة C/C++، تتضمن حوالي 250,000 سطر من التعليمات البرمجية.
- ^ "الرئيسية - ZGC" . أوبن جي دي كيه ويكي .
- ↑ "دليل ضبط تجميع البيانات المهملة للآلة الافتراضية HotSpot" . مركز مساعدة أوراكل .
- ^ "الرئيسية - شيناندواه" . أوبن جي دي كيه ويكي .
- ↑ "أمر جافا" . شركة أوراكل . تم الاطلاع عليه بتاريخ 21-03-2025 .
- ↑ موكر، جوزيف د. (28-08-2007). "مجموعة من خيارات JVM" . مؤرشف من الأصل في 30-04-2011 . تم الاسترجاع في 08-02-2009 .
- ↑ ماكسيموفيتش، ديمتري. "القائمة الأكثر شمولاً لخيارات -XX لآلة جافا الافتراضية 6" . مؤرشفة من الأصل بتاريخ 30 يناير 2010. تم الاطلاع عليها بتاريخ 8 فبراير 2009 .
- ↑ ناتر، تشارلز (29-01-2009). "أعلام JVM المفضلة لديّ لنقاط الاتصال الساخنة" . تم الاسترجاع في 08-02-2009 .
- ↑ "شركة صن مايكروسيستمز تُتيح تقنية جافا مفتوحة المصدر وتُصدر شفرة المصدر بموجب ترخيص GPL الإصدار الثاني عبر منصتي NetBeans وJava.net" . صن مايكروسيستمز. ١٣ نوفمبر ٢٠٠٦. مؤرشف من الأصل بتاريخ ٩ فبراير ٢٠٠٩. تاريخ الاطلاع: ٦ مايو ٢٠١٧ .
- ↑ JDK7 مؤرشف بتاريخ 15-12-2016 في Wayback Machine ، الأحد.
- ↑ "تكوينات النظام المعتمدة لـ Oracle JDK 17" . شركة أوراكل . تم الاسترجاع في 1 فبراير 2021 .
- ↑ "JEP 381: إزالة منافذ Solaris و SPARC" . openjdk.java.net .
- ↑ بينسون، غاري (2007-11-06). "دليل غاري لنقل لعبة IcedTea" . تم الاسترجاع في 2008-01-26 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ بنسون، غاري (1 فبراير 2008). "1 فبراير 2008" . تم الاطلاع عليه بتاريخ 3 فبراير 2008 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ هالي، أندرو (31 يناير 2008). "جعل لغة التجميع الصفرية هي اللغة الافتراضية على معالجات ppc" . تم الاطلاع عليه بتاريخ 1 فبراير 2022 .
- ↑ أنجيل، ليليان (13 فبراير 2008). "إصدار IcedTea 1.6 مع دعم Zero-assembler وJNLP!" . ريد هات . تم الاطلاع عليه بتاريخ 13 فبراير 2008 .
روابط خارجية
- الموقع الرسمي
- قائمة بخيارات الأجهزة الافتراضية لنقاط الاتصال الساخنة
- مواصفات آلة جافا الافتراضية
- تاريخ فريق Strongtalk-HotSpot الأصلي
- أعلنت شركة صن عن إطلاق محرك أداء جافا هوت سبوت . مؤرشف من الأصل بتاريخ 18 ديسمبر 2006. تم الاطلاع عليه بتاريخ 27 مارس 2014 .
{{cite web}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط ) - مستودع تطوير شفرة المصدر HotSpot Mercurial (نظام التحكم في الإصدارات) لـ JDK8
- برنامج مبرمج بلغة التجميع
- برنامج مجاني مكتوب بلغة C++
- آلة جافا الافتراضية
- برنامج أوراكل
- برمجيات صن مايكروسيستمز
- برنامج يستخدم رخصة جنو العمومية العامة
