Oracle GraalVM هو JDK عالي الأداء الذي يمكن أن يسرّع أداء التطبيقات المستندة إلى JVM وJava باستخدام مجمع بديل في الوقت المحدد (JIT). تعمل على تقليل زمن وصول التطبيقات، وتحسين معدل النقل بالذروة من خلال تقليل وقت جمع النفايات، كما تأتي مع دعم Oracle على مدار الساعة طوال أيام الأسبوع.
هناك أيضًا أداة مساعدة للصورة تتم من خلالها تجميع تعليمات Java المكونة من وحدات البايت قبل الوقت (AOT) وإنشاء ملفات تنفيذية أصلية لبعض التطبيقات التي تبدأ بشكل فوري تقريبًا وتستخدم موارد ذاكرة قليلة جدًا.
بدأت 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 الإلكتروني
يشتمل مجمع GraalVM على عدد من خوارزميات التحسين الإضافية التي توفر تحسينات كبيرة في الأداء واستهلاك الموارد. تدعم ميزات صورة GraalVM الأصلية عددًا من الميزات المتقدمة، بما في ذلك جامع النفايات G1، والمؤشرات المضغوطة، والتحسين الموجه لملف التعريف الذي يساعد المجمع في إنشاء تعليمات برمجية أكثر كفاءة.
يتم تضمين GraalVM مع منتجات Java SE دون أي تكلفة إضافية. ويتضمن دعمًا على مدار 24 ساعة طوال الأسبوع من قبل Oracle مع إمكانية الوصول إلى إصلاحات الأمان وتحديثات المسارات الحرجة لتحقيق أداء وموثوقية أكثر قابلية للتنبؤ. لترحيل Java إلى السحابة، يمكن استخدام GraalVM مجانًا على Oracle Cloud Infrastructure (OCI).
يمكن لـ GraalVM أن تمكّن المطورين من إنشاء تعليمات برمجية أكثر كفاءة، مع عزل أفضل وسرعة أكبر للبيئات الهجينة أو السحابة. إليك بعض الأسباب وراء استخدام المزيد والمزيد من الأعمال اليوم لـ GraalVM:
تساعد ابتكارات GraalVM تعليمات Java البرمجية على مواكبة متطلبات الحوسبة الحالية بأداء أسرع للاستجابة بسرعة لاحتياجات العملاء. يعمل المحسن المتقدم على تحسين معدل النقل القصوى. كما تعمل أيضًا على تحسين استهلاك الذاكرة عن طريق تقليل تخصيصات الكائنات للحد من الوقت المستغرق في تنفيذ جمع النفايات. يمكن لـ GraalVM التي تعمل في وضع JIT تعزيز الأداء بنسبة تصل إلى 50%. ويعمل هذا الأمر على تحرير الذاكرة في أسرع وقت، بحيث يمكنك تشغيل أحمال عمل أخرى على نفس البنية الأساسية وتقليل تكاليف تقنية المعلومات.
إنشاء تطبيقات سحابية أصليةيقوم البرنامج المساعد لصورة Oracle GraalVM الأصلية بتجميع تطبيقات Java برمجية مكونة من وحدات البايت في وقت مبكر في ثنائيات الآلات. حيث تقوم الملفات التنفيذية الأصلية بالتشغيل بشكل أسرع مائة مرة وتستهلك ذاكرة أقل بما يصل إلى 5 مرات.
مع قيام المؤسسات بنقل أحمال العمل إلى السحابة والدفع في مقابل ساعة استخدام موارد النظام، يمكن أن تساعد 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. من خلال تجميع الصورة الأصلية في وقت مبكر، تبدأ بشكل سريع وتستخدم ذاكرة أقل، مما يجعلها مثالية لنشر السحابة الأصلية. فهو يدعم برامج متعددة اللغات لتحسين الإنتاجية من خلال السماح للمطورين باستخدام أفضل المكتبات اللازمة لحل مشكلات الأعمال بصرف النظر عن اللغة التي كتبوها.