تفكر OpenJDK في تضمين API غير المتزامن Stack Trace VM 

OpenJDK

OpenJDK هو الإصدار المجاني لمنصة تطوير Java وفقًا لمفهوم اللغة الموجهة للكائنات.

مؤخرا تم إصدار اقتراح لتعزيز تتبعات المكدس غير المتزامنة في Java وأنه يزدهر في عملية تحسين Java لـ OpenJDK. يهدف المشروع إلى تعريف AsyncGetStackTrace API لتجميع تتبعات المكدس بشكل غير متزامن وتضمين بيانات حول Java وأطر عمل المكدس الأصلية.

وفقًا للاقتراح ، لن يتأثر الأداء عندما لا تكون واجهة برمجة التطبيقات قيد الاستخدام ولن تزيد متطلبات الذاكرة بشكل ملحوظ مقارنة بواجهة برمجة تطبيقات AsyncGetCallTrace الحالية. لن يوصى باستخدام واجهة برمجة التطبيقات الجديدة للاستخدام الإنتاجي لأنها قد تتسبب في تعطل JVM. تتضمن الخطط تقليل مخاطر مثل هذا الحادث من خلال الاختبارات والتحقق المكثف.

يتم استخدام AsyncGetCallTrace بواسطة معظم المولدات من الملفات الشخصية المتاحة ، مفتوحة المصدر والتجارية على حد سواء ، بما في ذلك ملف التعريف غير المتزامن. لكن له عيبان كبيران.

  1. هذه واجهة برمجة تطبيقات داخلية ، ولم يتم تصديرها في أي رؤوس ؛
  2. يقوم فقط بإرجاع معلومات حول إطارات Java ، أي مؤشرات الطريقة والرمز الثانوي الخاصة بهم.

تجعل هذه المشكلات من الصعب تنفيذ أدوات التوصيف والأدوات ذات الصلة. على الرغم من أنه يمكن استخراج معلومات إضافية من HotSpot VM من خلال كود معقد ، فإن المعلومات المفيدة الأخرى مخفية ويستحيل الحصول عليها:

ما إذا كان إطار عمل Java المترجم متصلًا بالإنترنت (لا يمكن الحصول عليه حاليًا إلا لأطر العمل المترجمة الأعلى).

مستوى بناء إطار عمل Java (أي تم تجميعه بواسطة C1 أو C2).
معلومات حول أطر C / C ++ غير الموجودة في الجزء العلوي من المكدس.

هذه التواريخ يمكن أن يكون مفيدًا عند تحديد سمات جهاز افتراضي وضبطه لتطبيق معين ، وكذلك عند تحديد رمز يستخدم الكثير من JNI.

سيتم تصميم واجهة برمجة التطبيقات على طراز APIAsyncGetCallTrace ، أيضًا ، لم يتم تقديم واجهة برمجة التطبيقات الجديدة لنسخة محددة من معيار جافا. الإصدار التالي من Java هو (JDK) 20 ، والمتوقع في مارس 2023. لدى Java عملية رسمية لدمج تغييرات النظام الأساسي التي تمكنت من الاستجابة للظروف المتغيرة مع تحقيق درجة عالية من الاستقرار.

يمكن لملفات التعريف استدعاء API هذا للحصول على تتبع المكدس لمؤشر الترابط الجاري تنفيذه. يعد استدعاء واجهة برمجة التطبيقات هذه من معالج إشارة آمنًا ، وسيكون التنفيذ الجديد مستقرًا على الأقل مثل كود تتبع مكدس JFR. تملأ الآلة الافتراضية معلومات الإطار وعدد الإطارات. يجب أن يقوم طالب API بتخصيص صفيف الاستدعاء بذاكرة كافية لعمق المكدس المطلوب.

يكمل الجهاز الظاهري بنية التتبع التي تحتوي على العدد الفعلي للصور في مصفوفة الصور أو رمز خطأ. رموز الخطأ هي مجموعة فرعية من رموز الخطأ لـ AsyncGetCallTrace.

على الرغم من أن واجهة برمجة التطبيقات توفر مزيدًا من المعلومات ، إلا أن المساحة المطلوبة لكل إطار (على سبيل المثال ، 16 بايت على x86) هي نفسها الموجودة في APIAsyncGetCallTrace. تؤدي إعادة المعلومات حول أطر عمل C / C ++ إلى الكشف عن تفاصيل التنفيذ ، ولكن هذا ينطبق أيضًا على أطر عمل AsyncGetCallTrace Java لأنها تكشف عن تفاصيل تنفيذ ملفات المكتبة القياسية وتتضمن أطر عمل مجمعة أصلية.

حتى قد لا يكون لدى مطور Java ذو الخبرة فهم جيد كيف يتم تطوير المنصة وصيانتها. الدرس الرئيسي الذي يجب تعلمه هو أن هذه عملية مفتوحة حقًا.

أساس تطوير Java هو عملية مجتمع Java (JCP). إنه نوع من المستندات الأساسية الواعية للذات والتي تحدد كيفية إدخال التغييرات في النظام الأساسي وتسمح أيضًا بتعديل العملية نفسها. أحدث إصدار من JCP هو 2.11 ، والذي تم اعتماده في عام 2019.

يقوم JCP بإضفاء الطابع الرسمي على كيفية اقتراح الميزات والتغييرات الجديدة في Java ومراجعتها والموافقة عليها. (أي المواصفات الفنية) ، بما في ذلك تحديد الأدوار المختلفة التي يمكن أن يشغلها الأشخاص. تساعد هذه الأدوار في توفير مكان حيث يمكن لمجتمع مستخدمي Java المشاركة في إدارة النظام الأساسي.

لاقتراح وظائف وتغييرات جديدة ، يسمح JCP بإنشاء ("تهيئة") طلبات مواصفات Java (JSR). يتم ذلك من خلال نموذج موحد. للوصول إلى النموذج ، يجب عليك التسجيل للحصول على حساب JCP مجاني.

من هناك ، تأتي العديد من التغييرات ، صغيرة كانت أم لا ، لتقنيات Java التي نستخدمها كل يوم. عندما يصل JSR ، فإنه يدخل في عملية مراجعة JSR. إنها عملية متعددة الخطوات يتم فيها النظر تدريجياً في التغييرات المقترحة في JSR بشكل أكثر جدية وتعديلها واعتمادها أو إيقافها في النهاية.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها، يمكنك التحقق من التفاصيل في الرابط التالي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.