Oracle GraalVM

متوفر مع الاشتراك العالمي لـ Java SE من دون تكلفة إضافية لتمكين تطوير تطبيقات Java الحديثة من خلال إنشاء التطبيقات المستندة إلى الخدمات الصغيرة لعمليات النشر السحابية الأصلية من خلال تحسين الأداء ووفورات التكاليف.

تعريف Oracle GraalVM

تم تعريف GraalVM

Oracle GraalVM هو JDK عالي الأداء الذي يمكن أن يسرّع أداء التطبيقات المستندة إلى JVM وJava باستخدام مجمع بديل في الوقت المحدد (JIT). تعمل على تقليل زمن وصول التطبيقات، وتحسين معدل النقل بالذروة من خلال تقليل وقت جمع النفايات، كما تأتي مع دعم Oracle على مدار الساعة طوال أيام الأسبوع.

هناك أيضًا أداة مساعدة للصورة تتم من خلالها تجميع تعليمات Java المكونة من وحدات البايت قبل الوقت (AOT) وإنشاء ملفات تنفيذية أصلية لبعض التطبيقات التي تبدأ بشكل فوري تقريبًا وتستخدم موارد ذاكرة قليلة جدًا.

GraalVM (مترجم Graal وTruffle وOracle Java Development Kit [JDK])

بدأت GraalVM في عام 2011 كمشروع أبحاث في Oracle Labs لإنشاء منصة في وقت التشغيل يمكنه تشغيل عدة لغات برمجة ذات أداء عالٍ. أساس مشروع GraalVM هو مجمع GraalVM المحسن المتقدم، والذي يُستخدم كمجمِّع في الوقت المناسب (JIT) لـ Java Virtual Machine (JVM) أو بواسطة ميزة صور GraalVM الأصلية لتجميع رموز Java المكونة من وحدات البايت في وقت مبكر ضمن التعليمات البرمجية للجهاز الأصلي. يعمل إطار تنفيذ لغة Truffle من GraalVM مع مجمع GraalVM لتشغيل JavaScript، وPython، وRuby، واللغات الأخرى المدعومة في JVM مع الأداء المتميز.

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

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

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

تعرف على المزيد حول مجمِّع GraalVM، اقرأ كتاب GraalVM for Dummies الإلكتروني

Oracle GraalVM

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

يتم تضمين GraalVM مع منتجات Java SE دون أي تكلفة إضافية. ويتضمن دعمًا على مدار 24 ساعة طوال الأسبوع من قبل Oracle مع إمكانية الوصول إلى إصلاحات الأمان وتحديثات المسارات الحرجة لتحقيق أداء وموثوقية أكثر قابلية للتنبؤ. لترحيل Java إلى السحابة، يمكن استخدام GraalVM مجانًا على Oracle Cloud Infrastructure (OCI).

سبب استخدام Oracle GraalVM

يمكن لـ GraalVM أن تمكّن المطورين من إنشاء تعليمات برمجية أكثر كفاءة، مع عزل أفضل وسرعة أكبر للبيئات الهجينة أو السحابة. إليك بعض الأسباب وراء استخدام المزيد والمزيد من الأعمال اليوم لـ GraalVM:

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

حالات استخدام GraalVM

تعزيز الأداء وتوسيع تطبيقات Java الحالية

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

إنشاء تطبيقات سحابية أصلية

يقوم البرنامج المساعد لصورة Oracle GraalVM الأصلية بتجميع تطبيقات Java برمجية مكونة من وحدات البايت في وقت مبكر في ثنائيات الآلات. حيث تقوم الملفات التنفيذية الأصلية بالتشغيل بشكل أسرع مائة مرة وتستهلك ذاكرة أقل بما يصل إلى 5 مرات.

مؤسسة Graalvm الأصلية
الشكل 1 - تبدأ الملفات التنفيذية الأصلية في التشغيل على الفور تقريبًا وتستهلك ذاكرة قليلة جدًا.

مع قيام المؤسسات بنقل أحمال العمل إلى السحابة والدفع في مقابل ساعة استخدام موارد النظام، يمكن أن تساعد GraalVM في تحقيق وفورات في التكلفة التشغيلية. تجعل هذه النتائج GraalVM ملفات تنفيذية أصلية مثالية لنشر الخدمات الصغيرة، وهي منطقة مدعومة بأطر عمل الخدمات الصغيرة الرئيسية، مثل Helidon وMicronaut وquarkus وSpring Boot.

تطوير برامج متعددة اللغات وتحسين الإنتاجية

يمكنك تشغيل Java واللغات الأخرى، مثل JavaScript، على JVM مع أداء ممتاز. يعد SuiteScript الخاص بـ Oracle NetSuite لغة امتداد للمستخدمين لتخصيص التطبيقات التي تعمل على NetSuite. مكّنت Oracle GraalVM NetSuite من تضمين وقت تشغيل JavaScript قائم على Truffle يمكنه تجميع JavaScript في تعليمة برمجية للجهاز تعمل بسرعة أكبر بمقدار 4 أضعاف من SuiteScript تعمل على JVM.

كيفية تحسين أداء التطبيقات وكفاءتها

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