Red Hat i społeczność GraalVM ogłosiły niedawno wydanie nowej dystrybucji GraalVM o nazwie Mandrel . Ma ona ulepszyć kompilację Red Hat Quarkus, niedawno ogłoszonego dodatku do środowiska uruchomieniowego Red Hat Runtimes.
Quarkus to natywny framework Java Kubernetes dla JVM i kompilacji natywnej. Quarkus zapewnia wydajne rozwiązanie do uruchamiania bezserwerowych aplikacji Java, mikrousług, kontenerów, Kubernetes, FaaS i aplikacji chmurowych. Mandrel jest oprogramowaniem open source i dostępnym na GitHubie, ale nie ma jeszcze dystrybucji binarnej.
Jak wynika z notatki Marka Little’a, starszego dyrektora ds. inżynierii w Red Hat, Mandrel można opisać jako dystrybucję standardowego OpenJDK ze specjalnie spakowanym natywnym obrazem GraalVM.
Głównym celem wprowadzenia przez Red Hat platformy Mandrel jest zwiększenie szybkości i wydajności frameworka Quarkus. To framework oferujący lokalne możliwości tworzenia oprogramowania z szybkim przeładowywaniem oraz dystrybucję kontenerową lub bezserwerową do dostawców chmury obliczeniowej.
Quarkus koncentruje się na możliwości tworzenia natywnych plików wykonywalnych , które uruchamiają się szybciej, a także redukują koszty i zasoby operacyjne w chmurze.
Red Hat wyjaśnił, że dla Quarkusa ważnym elementem GraalVM jest natywna funkcja obrazu , która generuje natywne pliki wykonywalne – kluczowa cecha, dzięki której Java może konkurować w obciążeniach natywnych dla chmury. Dlatego Mandrel umożliwia korzystanie z GraalVM wraz z OpenJDK 11 w systemie Red Hat Enterprise Linux i innych dystrybucjach OpenJDK 11.
Według firmy Red Hat różnica dla użytkownika jest minimalna, ale ze względu na łatwość konserwacji konieczne jest wcześniejsze dostosowanie do OpenJDK 11 i GraalVM.
„Dzięki firmie Mandrel klienci Red Hat i społeczność GraalVM czerpią korzyści z prawdziwie otwartego rozwoju, a Red Hat może wspierać swoich klientów sprawdzonymi mechanizmami, jednocześnie dając społecznościom, którym ufają, dalsze rozwijanie najnowocześniejszej sztuki informatyki open source”, - powiedziała firma, mówiąc o Mandrelu.
Jeśli chodzi o wydajność, GraalVM wyróżnia się 50-krotnie szybszym czasem uruchamiania i 5-krotnie niższym wykorzystaniem pamięci.
Te różne testy zostały przeprowadzone przy użyciu starszej wersji platformy Quarkus w trybie Java HotSpot. Chociaż to ulepszenie wymaga dłuższego czasu kompilacji, może być używane równolegle z wdrażaniem funkcji Quarkus Lambda i Azure.
Co więcej, repozytorium Mandrel na GitHubie nie oferuje jeszcze dystrybucji binarnej. Dlatego użytkownicy kompilują JDK samodzielnie, postępując zgodnie z instrukcjami. Co więcej, programista James Ward szczegółowo omówił GraalVM, opisując jego zalety pod względem wydajności, a także pewne wady, takie jak aplikacje oparte na refleksji.
Według niego stwarza to problem dla natywnych obrazów GraalVM, ponieważ odbicie występuje w czasie wykonywania, co utrudnia kompilatorowi AOT (wczesnego ptaka) określenie ścieżek wykonywania.
Jeśli chodzi o aplikacje, które nie muszą myśleć, strona główna Quarkusa wskazuje bezpośrednio na zalety: 12 MB pamięci RAM w porównaniu z 73 MB (spadek o 83%) i 0.016 sekundy przy pierwszej odpowiedzi w porównaniu z 0.943 (spadek o 98% ).
Programiści mogą teraz używać Mandrel we własnych kompilacjach lub polegać na społeczności GraalVM lub dowolnej dystrybucji JDK 11 i nowszych. Inni twierdzą, że te natywne frameworki Javy tak naprawdę nie działają i nie powinny stać się standardem branżowym.
Według nich, nie jest to technologia uniwersalna, pozwalająca na przekształcenie istniejącej aplikacji Java w aplikację natywną. To się nie sprawdzi, nawet w przypadku aplikacji napisanych z wykorzystaniem biblioteki z rozległego ekosystemu Java.
Ci ostatni uważają, że różni dostawcy frameworków stawiają na fakt, że większość aplikacji Java to aplikacje HTTP / ORM / JSON, oprócz środków i bezpieczeństwa itp.
Jeśli chcesz dowiedzieć się więcej, możesz zapoznać się z poniższym linkiem.