GraalVM 簡介

GraalVM 是一個具有提前 (ahead-of-time) Native Image 編譯功能的高級 JDK。

GraalVM 可加速應用程式效能,同時消耗較少的資源,從而提高應用程式效率並降低 IT 成本。它藉由將您的 Java 應用程式提前編譯為原生二進位檔來實現此目的。此二進位檔較小,啟動速度快 100 倍,提供無預熱的峰值效能,並且比在 Java 虛擬機器 (JVM) 上執行的應用程式使用更少的記憶體和 CPU。透過設定檔導向最佳化和 G1 (Garbage-First) 垃圾收集器,您可以獲得比在 JVM 上執行的應用程式更低的延遲和相當或更好的峰值效能和輸送量。

主要優點 #

GraalVM 的主要優點為:

  • 低資源使用率:由 GraalVM 提前編譯的 Java 應用程式需要較少的記憶體和 CPU 才能執行。不會將記憶體和 CPU 週期花費在即時編譯上。因此,您的應用程式需要較少的資源才能執行,並且大規模運作的成本更低。
  • 快速啟動:使用 GraalVM,您可以透過在建置時而不是執行時初始化部分應用程式,更快地啟動 Java 應用程式,並立即實現可預測的峰值效能,而無需預熱。
  • 精簡封裝:由 GraalVM 提前編譯的 Java 應用程式很小,可以輕鬆封裝到輕量型容器映像中,以實現快速且有效率的部署。
  • 提高安全性:GraalVM 藉由排除以下項目來減少 Java 應用程式的攻擊面:無法存取的程式碼 (未使用的類別、方法和欄位)、即時編譯基礎結構,以及建置時初始化的程式碼。GraalVM 的封閉世界假設可防止您的應用程式藉由在執行時停用反射、序列化等動態功能來載入未知程式碼,並且需要在建置時提供此類類別、方法和欄位的明確包含清單。GraalVM 可以在二進位檔中嵌入軟體物料清單 (SBOM),讓您更容易使用常見的安全性掃描器來檢查您的 Java 應用程式中已發佈的常見漏洞和暴露 (CVE)。
  • 輕鬆建置雲端原生微服務:熱門的微服務框架 (例如 Micronaut、Spring Boot、Helidon 和 Quarkus) 以及雲端平台 (例如 Oracle Cloud Infrastructure (OCI)、Amazon Web Services (AWS)、Google Cloud Platform (GCP) 和 Microsoft Azure) 都支援 GraalVM。這讓您可以輕鬆建置雲端原生 Java 微服務,這些微服務會編譯為二進位檔、封裝在小型容器中,並在最熱門的雲端平台上執行。
  • 使用 Python 和其他語言擴充您的 Java 應用程式:使用 GraalVM,您可以嵌入 Python、JavaScript 等語言來擴充您的 Java 應用程式。
  • 使用現有的開發和監視工具:您現有的 Java 應用程式開發和監視工具可與 GraalVM 應用程式二進位檔搭配運作。GraalVM 為 Maven 和 Gradle 提供建置外掛程式,並為 CI/CD 提供 GitHub Actions。GraalVM 支援 Java Flight Recorder (JFR)、Java Management Extensions (JMX)、堆積傾印、VisualVM 和其他監視工具。GraalVM 可搭配現有的 Java 編輯器/IDE 和單元測試框架 (例如 JUnit) 使用。

授權與支援 #

Oracle GraalVM 是根據GraalVM 免費條款及條件 (GFTC),包括早期採用者版本授權授權。在授權中的條件(包括早期採用者版本授權)的限制下,GFTC 旨在允許任何使用者(包括商業和生產用途)使用。允許重新散佈,但不得收取費用。Oracle GraalVM 也可在 Oracle Cloud Infrastructure 上免費使用。如需更多關於 Oracle GraalVM 授權的資訊,請參閱Oracle Java SE 授權常見問題

GraalVM Community Edition 是從 GitHub 上提供的原始碼建置的開放原始碼專案,並在具有「類路徑」例外的 GNU 通用公共許可證第 2 版下發佈,這些條款與 Java 的條款相同。檢查各個 GraalVM 元件的授權,這些授權通常是特定語言授權的衍生,且可能有所不同。

與我們聯繫