0Pricing
Java Academy · درس

ما GraalVM

آلة افتراضية متعددة اللغات عالية الأداء

ما GraalVM درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.

ما هو GraalVM

إن GraalVM توزيعة JDK عالية الأداء مبنية على مترجم حديث في الوقت المناسب يُسمى Graal. وهي تشغّل Java العادية بسرعة أكبر في كثير من أعباء العمل، وتضيف إمكانيتين رئيسيتين: التنفيذ متعدد اللغات والترجمة الأصلية مسبقًا.

JDK قابل للاستبدال مباشرةً

إن GraalVM عبارة عن JDK كامل. تعمل أدوات javac وjava الحالية لديك، وكذلك الشيفرة البايتية، دون أي تغيير. يكمن الاختلاف في المترجم الموجود في الأسفل والأدوات الإضافية التي تأتي معه، مثل native-image.

public class Main {
    public static void main(String[] args) {
        System.out.println("Runs the same on GraalVM as on any JDK");
        System.out.println("Java: " + System.getProperty("java.version"));
    }
}

مترجم Graal

كُتب Graal JIT بلغة Java نفسها. وهو ينفّذ تحسينات قوية مثل التضمين المتقدم، وتحليل الهروب الجزئي، والتحسين التخمني، وغالبًا ما يتفوق على مترجم C2 التقليدي في الشيفرة ذات التجريدات الكثيرة والتي تنشئ قدرًا كبيرًا من الكائنات.

التنفيذ متعدد اللغات باستخدام Truffle

تتضمن GraalVM إطار العمل Truffle، الذي يتيح تشغيل لغات متعددة على الآلة الافتراضية نفسها، بل واستدعاء بعضها بعضًا. وتوجد تطبيقات لـ JavaScript وPython وRuby وR وWebAssembly. ويمكن للقيم عبور حدود اللغات بكلفة إضافية منخفضة.

مثال مفاهيمي على التنفيذ متعدد اللغات

باستخدام واجهة برمجة التطبيقات متعددة اللغات، تنشئ Context وتقيّم شيفرة بلغة أخرى، ثم تقرأ النتيجة مرة أخرى في Java. توجد الأصناف في org.graalvm.polyglot.

// Requires GraalVM polyglot runtime
import org.graalvm.polyglot.*;

public class Main {
    public static void main(String[] args) {
        try (Context ctx = Context.create()) {
            Value sum = ctx.eval("js", "40 + 2");
            System.out.println(sum.asInt());
        }
    }
}

Native Image

تترجم أداة native-image Java مسبقًا إلى ملف تنفيذي أصلي مستقل. لا توجد JVM أثناء التشغيل، ولا حاجة إلى تحميل الأصناف أو إحماء JIT، ولذلك يبدأ البرنامج خلال أجزاء من الثانية.

الإصدارات

تتوفر GraalVM في Community Edition المجانية، وفي توزيعة Oracle GraalVM التي تتضمن تحسينات إضافية. ويتضمن كلاهما native-image؛ وبالنسبة إلى معظم أغراض التعلم وكثير من الاستخدامات الإنتاجية، تكفي النسخة المجتمعية.

لماذا يهم ذلك في السحابة

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

JIT مقابل AOT

يتعايش نموذجان للتنفيذ:

  • يُحسّن JIT (مترجم Graal) الشيفرة أثناء التشغيل باستخدام التنميط المباشر، وهو الأفضل لتحقيق أعلى معدل إنتاجية للخوادم طويلة التشغيل.
  • يترجم AOT (native-image) الشيفرة قبل تشغيلها، وهو الأفضل لسرعة بدء التشغيل واستهلاك الذاكرة.

دعم أطر العمل

توفّر أطر العمل الحديثة مثل Spring Boot وQuarkus وMicronaut دعمًا أساسيًا لـ native-image. وهي تحسب الإعدادات مسبقًا في وقت البناء، بحيث يُترجم تطبيقك بسلاسة إلى ملف ثنائي أصلي.

اختيار GraalVM

اعتمد GraalVM عندما تريد إنتاجية JIT أعلى في الشيفرة كثيفة التجريدات، أو تحتاج إلى التفاعل بين اللغات، أو تريد ملفات تنفيذية أصلية لعمليات نشر سريعة البدء ومنخفضة استهلاك الذاكرة. فهي مجموعة شاملة من إمكانات JDK القياسي، ولذلك فإن اعتمادها منخفض المخاطر.

تحقّق سريعًا

اختبر مدى فهمك لـ GraalVM.

مراجعة

تعرّفت إلى GraalVM:

  • إنها JDK كاملة مبنية على مترجم Graal JIT عالي الأداء.
  • يتيح Truffle التنفيذ متعدد اللغات والاستدعاءات بين اللغات.
  • يترجم native-image Java مسبقًا إلى ملفات تنفيذية أصلية.
  • يفضّل JIT الإنتاجية في العمليات طويلة التشغيل، بينما يفضّل AOT سرعة بدء التشغيل واستهلاكًا أقل للذاكرة.
  • تدعم أطر العمل مثل Spring Boot وQuarkus وMicronaut عمليات البناء الأصلية.

الأسئلة الشائعة

هل درس «ما GraalVM» مجاني؟

نعم — نص درس «ما GraalVM» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.

ماذا ستتعلم في «ما GraalVM»؟

آلة افتراضية متعددة اللغات عالية الأداء تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ما GraalVM»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ما GraalVM
  2. إنشاء صورة أصلية
  3. الانعكاس والتهيئة
  4. مقايضات الصورة الأصلية
← العودة إلى Java Academy