تعد Java Virtual Machine (JVM) جوهر نظام Java البيئي، حيث توفر جميع الأدوات الأساسية لتشغيل تعليمات Java البرمجية. لفهم كيفية عمله بشكل كامل، من الضروري فهم دورة حياة هذا المترجم وتأثيراته على أداء تطبيقات Java وتحسينها.
تبدأ دورة حياة JVM بأكملها بعملية أساسية تسمى "JVM Bootstrapping" وهي المسؤولة عن بناء بيئة التنفيذ بأكملها وإعدادها. في هذا السياق: يتم تفسير الوسائط التي تم تمريرها في سطر الأوامر، ويتم تخصيص رمز JVM في الذاكرة، وتتم تهيئة هياكل البيانات الداخلية لـ JVM، وتبدأ إدارة الذاكرة، وأخيرًا يمر مؤشر ترابط التطبيق الرئيسي قيد التشغيل. دعونا نستكشف كل عملية فرعية موصوفة في هذه الفقرة على حدة:
يتم تفسير الوسائط التي تم تمريرها في سطر الأوامر
عند بدء تشغيل البرنامج عبر سطر الأوامر، يبدأ JVM سلسلة من العمليات المسؤولة عن تحليل الوسائط المقدمة، والتي قد تتضمن معلمات التهيئة - مثل: -Xms و-Xmx لتحديد الحد الأدنى للحجم والحد الأقصى للكومة، منطقة الذاكرة المسؤولة عن تخصيص وإنشاء الكائنات في سياق التطبيق - تصحيح المواصفات أو التكوينات حتى لدورة Garbage Collector نفسها.
قبل المتابعة، من المهم الإشارة إلى: من أجل التبسيط، سنقوم بتحليل جزء التعليمات البرمجية الذي يتعامل مع تحليل وسيطات JVM المتقدمة - تلك التي تبدأ بـ -XX.
لمزيد من الوضوح، سوف نستخدم التعليمات البرمجية مفتوحة المصدر من OpenJDK لمزيد من المراجع. في الملف arguments.cpp الموجود في الدليل src/hotspot/share/runtime.arguments.cpp الوظيفة التي تفسر المعلمات المتقدمة (-XX) بواسطة واجهة سطر الأوامر هي:
إجراء تحليل موجز، تبدأ الوظيفة في التحقق لمعرفة ما إذا كانت الوسيطة التي تم تمريرها تبدأ بـ أو -، وتحديد ما إذا كانت العلامة منطقية، وكذلك ما إذا كان يجب إلغاء تنشيطها أو تنشيطها.
بعد ذلك يبدأ الكود باستخراج اسم العلم. يتم تحليل كل حرف، إذا لم يكن أبجديًا رقميًا أو لا _، فإنه ينتهي (يعني اسم العلم مكتمل).
بعد إجراء عمليات التحقق وتحديد اسم العلامة، يتم أخيرًا استدعاء الطريقة JVMFlag* flag = find_jvm_flag(name, name_len); لمعرفة ما إذا كان هناك أي تكوين متاح لما تم توفيره.
هذا ملخص صغير لكيفية تحليل وسيطات -XX الأكثر تقدمًا. ومع ذلك، من الممكن أن نجد في نفس الملف الذي سأذكره، عمليات الوسيطات التي تبدأ بـ -X والتي تمر عبر وظيفة تحليل أخرى:
مثال على العلامة: -XMS
مقالة قيد الإنشاء
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3