Oracle GraalVM

Daha iyi performans ve maliyet tasarrufu ile bulut yerel dağıtımları için mikro hizmet tabanlı uygulama yazılımları oluşturarak modern Java uygulama yazılımı geliştirmeyi güçlendirmek amacıyla Java SE Universal Subscription ile hiçbir ek ücret ödemeden sunulur

Oracle GraalVM nedir?

GraalVM tanımı

Oracle GraalVM, alternatif bir tam zamanında (JIT) derleyici kullanarak Java ve JVM tabanlı uygulama yazılımlarının performansını hızlandırabilen yüksek performanslı bir JDK'dir. Uygulama yazılımı gecikme süresini azaltır, gereksiz veri temizleme süresini azaltarak doruk noktası verimini artırır ve 7/24 Oracle desteği ile birlikte gsunulur.

Ayrıca Java bayt kodunu önceden (AOT) derleyen ve neredeyse anında başlayan ve çok az bellek kaynağı kullanan bazı uygulama yazılımları için yerel yürütülebilir dosyalar oluşturan yerel bir görüntü hizmet programı da vardır.

GraalVM (Graal derleyici, Truffle ve Oracle Java Geliştirme Kiti [JDK])

GraalVM, 2011 yılında Oracle Labs'de birden fazla programlama dilini yüksek performansla çalıştırabilen bir çalışma zamanı platformu oluşturmak için bir araştırma projesi olarak başlamıştır. GraalVM projesinin özü, Java Sanal Makinesi (JVM) için tam zamanında (JIT) derleyici olarak veya Java bayt kodlarını zamanından önce yerel makine koduna derlemek üzere GraalVM yerel görüntü özelliği tarafından kullanılan gelişmiş optimize GraalVM derleyicisidir. GraalVM'nin Truffle dili uygulama çerçevesi, JavaScript, Python, Ruby ve diğer desteklenen dilleri JVM'de olağanüstü performansla çalıştırmak için GraalVM derleyicisiyle birlikte çalışır.

GraalVM'yi JIT modunda kullanırken JVM, uygulama çalışırken Java bayt kodundan platforma özgü makine kodu oluşturmak için GraalVM JI derleyicisini kullanır. Derleme, program yürütme sırasında, sıklıkla yürütülen koda fazladan optimizasyon uygulanarak artımlı olarak gerçekleştirilir. Bu yaklaşım, agresif hatta alma, kısmi kod çıkışı analizi ve diğer gelişmiş optimizasyonlar sayesinde etkin noktalarda kodun son derece hızlı çalışmasını sağlar. Bazı optimizasyonlar, gereksiz veri toplayıcısındaki yükü azaltan nesne tahsislerini azaltır. Bu, uzun süreli çalıştırılan uygulama yazılımlarının doruk noktası performansını artırmaya yardımcı olur.

GraalVM yerel görüntü hizmet programı, yerel makine yürütülebilir dosyalarını zamanından önce (yani oluşturma zamanında) oluşturmak için Java bayt kodunu da derleyebilir. Bu yürütülebilir dosyalar neredeyse anında başlar ve JVM'de çalışan aynı Java uygulama yazılımı tarafından kullanılacak olan belleğin bir kısmını tüketir. Yerel yürütülebilir dosyalar, yalnızca uygulama yazılımının gerektirdiği sınıfları, yöntemleri ve bağımlı kitaplıkları içerdiklerinden kompakttır.

GraalVM, Truffle dili uygulama çerçevesi aracılığıyla çok dilli birlikte işlerliği de destekler. Truffle, desteklenen dillerde yazılmış programların çok dilli kitaplıkları kullanmasını sağlar. Örneğin, bir JavaScript programı Ruby yöntemlerini çağırabilir ve kopya oluşturmadan değerleri paylaşabilir. Truffle, JVM üzerinde çalışırken, tıpkı Java gibi, optimum performans için desteklenen dilleri yerel makine koduna derlemek için GraalVM derleyicisi ile iş birliği yapar.

GraalVM derleyici hakkında daha fazla bilgi edinin, Yeni Başlayanlar için GraalVM e-kitabını okuyun

Oracle GraalVM

GraalVM'in derleyicisi, performans ve kaynak tüketiminde önemli iyileştirmeler sağlayan bir dizi ek optimizasyon algoritması içerir. GraalVM'in yerel görüntü özellikleri, G1 çöp toplayıcı, sıkıştırılmış işaretçiler ve derleyicinin daha verimli kod üretmesine yardımcı olan profil kılavuzlu optimizasyon dahil olmak üzere bir dizi gelişmiş özelliği destekler.

GraalVM, Java SE ürünlerine hiçbir ek ücret olmaksızın dahildir. Daha öngörülebilir performans ve güvenilirlik için güvenlik düzeltmelerine ve kritik yol güncellemelerine erişim ile 7/24 Oracle desteği içerir. Java'nın buluta taşınması için GraalVM, Oracle Cloud Infrastructure (OCI) üzerinde ücretsiz olarak kullanılabilir.

Neden Oracle GraalVM kullanmalısınız?

GraalVM, geliştiricilerin bulut veya hibrit ortamlar için daha iyi izolasyon ve daha fazla çeviklik ile daha verimli kod oluşturmalarını sağlayabilir. Günümüzde giderek daha fazla işletmenin GraalVM kullanmasının nedenlerinden bazıları şunlardır:

  • Hızla değişen bir pazara uyum sağlama. Günümüzde iş uygulama yazılımlarının artan hacimlerde veriyi işlemesi ve müşteri taleplerine hızla yanıt vermesi gerekir. Java uygulama yazılımları, hıza ayak uydurmak için gelişebilir ve geliştiricilerin BT maliyetlerini düşürürken uygulama yazılımı performans verimliliğini artırmalarına yardımcı olur.
  • Buluta yerel durum için mikro hizmetleri ve kapsayıcıları kullanan modern Java uygulama yazılımları oluşturma kabiliyeti. Mikro hizmetler tek bir işlevi yerine getiren küçük ve bağımsız mini uygulama yazılımlarıdır. İş uygulama yazılımları genellikle yüzlerce hizmetten yararlanır ve gecikme süresini en aza indirmek ve bulut tüketim maliyetlerini azaltmak için her birinin hızlı bir şekilde başlaması gerekir. Başka bir deyişle, sadece kullandığınız kadar ödeme yapın.
  • Farklı programlama dillerinin tek bir JVM üzerinde birlikte çalışabileceği bir ekosistem geliştirerek geliştirici üretkenliğini artırın.

GraalVM kullanım senaryoları

Performansı artırma ve mevcut Java uygulama yazılımlarını genişletme

GraalVM yenilikleri, Java kodunun günümüzün bilgi işlem taleplerine daha hızlı performansla ayak uydurarak müşteri ihtiyaçlarına hızla yanıt vermesine yardımcı olur. Gelişmiş optimizer doruk noktası aktarım hızını artırır. Ayrıca, gereksiz veri temizleme işlemi için harcanan zamanı azaltmak amacıyla nesne tahsislerini en aza indirerek bellek tüketimini optimize eder. JIT modunda çalışan GraalVM performansı %50'ye kadar artırabilir. Bu, belleği daha erken boşaltır, böylece aynı altyapı üzerinde başka iş yüklerini çalıştırabilir ve BT maliyetlerini azaltabilirsiniz.

Buluta özel uygulama yazılımları oluşturma

Oracle GraalVM'in yerel görüntü yardımcı programı, bayt kodlu Java uygulamalarını zamanından önce makine ikili dosyalarına derler. Yerel yürütülebilir dosyalar, bir JVM'de çalışmaya kıyasla neredeyse 100 kat daha hızlı başlar ve 5 kat daha az bellek kullanır.

GraalVM enterprise yerel
Şekil 1 - Yerel yürütülebilir dosyalar, Go veya Java HotSpot ile karşılaştırıldığında neredeyse anında başlar ve çok az bellek kullanır.

Organizasyonlar iş yüklerini buluta taşırken ve sistem kaynaklarının kullanımı için saat başına ödeme yaparken GraalVM, operasyonel maliyet tasarruflarının gerçekleştirilmesine yardımcı olabilir. Bu sonuçlar, GraalVM tarafından oluşturulan yerel yürütülebilir dosyaları, Helidon, Micronaut, Quarkus ve Spring Boot gibi büyük mikro hizmet çerçeveleri tarafından desteklenen bir alan olan mikro hizmet dağıtımı için ideal hale getirir.

Çok dilli programlar geliştirme ve üretkenliği artırma

Java'yı ve JavaScript gibi diğer dilleri JVM'de mükemmel performans ile çalıştırabilirsiniz. Oracle NetSuite SuiteScript, son kullanıcıların NetSuite üzerinde çalışan uygulama yazılımlarını özelleştirebileceği bir uzantı dilidir. Oracle GraalVM, NetSuite'in JavaScript'i JVM üzerinde çalışan SuiteScript'ten 4 kat daha hızlı çalışan makine koduna derleyebilen Truffle tabanlı bir JavaScript çalışma zamanı yerleştirmesini sağlamıştır.

Uygulama yazılımı performansını ve verimliliğini artırma

GraalVM, Java uygulama performansını hızlandırmak için program JIT çalışırken makine kodu üreten gelişmiş bir optimize edici derleyici içerir. Zamanından önce derlenen yerel görüntü hızlı başlar ve daha az bellek kullanır, bu da onu bulutta yerel dağıtım için ideal hale getirir. Geliştiricilerin hangi dilde yazıldıklarından bağımsız olarak iş sorunlarını çözmek için gereken en iyi kitaplıkları kullanmalarına izin vererek üretkenliği artırmak için çok dilli programları destekler.