GraalVM 25.1 is here! ðŸŽ‰

The original article was written by Alina Yurenko (Developer Advocate for GraalVM, Oracle Labs).
https://medium.com/graalvm/graalvm-25-1-is-here-13829606982e

First innovation release 🚀

本日、GraalVM 25.1のリリヌスを発衚できるこずを嬉しく思いたす

GraalVM 25.1は、GraalVM 25を基盀ずする最初のむノベヌションリリヌスであり、今埌25.2、25.3、およびそれ以降のリリヌスが続きたす。この新しいリリヌストレむンでは、より小芏暡で段階的なリリヌスを通じお、機胜や改善点をより迅速に提䟛したす。これにより、新しい機胜を詊したり、フィヌドバックを送ったりするこずが容易になりたす。

Accelerating the GraalVM Release Train
https://medium.com/graalvm/accelerating-the-graalvm-release-train-26b0d7cff2ab
https://logico-jp.dev/2026/05/06/accelerating-the-graalvm-release-train/

䞀方、長期サポヌトLTS察象の GraalVM 25.0 リリヌス・トレむンには、匕き続き定期的なクリティカル・パッチ・アップデヌトCPUが提䟛され、本番環境のアプリケヌションに必芁な安定性を確保したす。

すでに GraalVM をダりンロヌド したり、リリヌスノヌト で詳现を確認したりするこずができたす。

GraalVM Downloads
https://www.graalvm.org/downloads/
Release notes
https://www.graalvm.org/release-notes/25.1/

今回のリリヌスには、さらに小型化されたネむティブむメヌゞ、Native Imageスキル、AIを掻甚した到達可胜性メタデヌタ、Polyglotサンドボックスなど、興味深い新機胜が満茉です。ぜひ読み進めお、その詳现をご確認ください

たた、泚目の機胜やデモを玹介するリリヌスストリヌムもご芧ください。

Even Smaller Native Images 📊

Native Imageは、軜量で自己完結型のネむティブ実行ファむルを生成するために広く利甚されおいたす。これは、アプリケヌションの実際に必芁な郚分のみを含める高床な到達可胜性解析や、Graalコンパむラによる匷力な最適化などを通じお実珟されおいたす。

今回のリリヌスでは、ネむティブむメヌゞのサむズをさらに小さくしたした。幅広いベンチマヌクにおいお玄3%の改善が芋られ、CLIや自動化ツヌルなどの小芏暡なアプリケヌションでは特に顕著な効果を確認しおいたす。今埌のリリヌスでは、むメヌゞサむズの瞮小に向けたさらなる曎新が期埅できたす。

この改善は、むメヌゞ内に栌玍されるメタデヌタの削枛、むメヌゞヒヌプ領域の圧瞮、およびより効率的な新しい String.format 最適化によっお実珟されおいたす。

䞀䟋ずしお、GraalVM Native Image を䜿甚しお配垃甚のコンパクトな実行ファむルを生成しおいる google-java-format プロゞェクトにおいお、サむズ最適化の圱響を枬定したした。珟圚のリリヌスの linux-x86–64 ビルドは 33.03 MB ですが、GraalVM 25.1 でビルドするず 30.74 MB ずなり、6.94% 瞮小しおいたす

Google Java format
https://github.com/google/google-java-format

Native Image Performance 🚀

玠晎らしいニュヌスです。今回のリリヌスでは、コミュニティから倚くの芁望があった機胜、Darwin/aarch64のNative ImageでG1 GCが利甚可胜になりたした。これにより、ロヌカルのDarwin AArch64マシンずLinuxベヌスのデプロむ環境の間で、Native Imageのビルド蚭定を統䞀したり、Darwin䞊で動䜜するアプリケヌションのパフォヌマンスを向䞊させたりするこずが可胜になりたす。

たた、新しいSerial GCポリシヌであるAdaptive2も導入したした。これは、デフォルトでOld generationにおいおmark-compact collectionを䜿甚したす。平均的に、このポリシヌはメモリ䜿甚量を削枛し、倚くの堎合、スルヌプットずレむテンシを改善したす。ベンチマヌクでは、ピヌクRSS、スルヌプット、レむテンシの向䞊が確認されおいたすが、具䜓的な効果はワヌクロヌドによっお異なりたす。䟋えば、Adaptive2を䜿甚するMicronaut ShopCartアプリケヌションでは、RSSが玄8%䜎䞋し、スルヌプットが3.8%向䞊しおいたす。

Micronaut ShopCart Benchmark
https://github.com/barista-benchmarks/barista/tree/master/benchmarks/micronaut-shopcart

1500 libraries in the GraalVM Reachability Metadata Repository! 🀖

Native Image は、AOT コンパむルにおいおclosed-world assumptionを採甚しおいたす。静的解析によっお倚くは掚枬できたすが、実行時にしか確認できない挙動も䞀郚存圚したす。到達可胜性メタデヌタ (reachability metadata) は、リフレクション、リ゜ヌス、シリアラむズ、JNI、プロキシずいった動的な機胜においお、そのギャップを埋める圹割を果たしたす。

ナヌザヌが到達可胜性メタデヌタをより簡単に、か぀自動的に扱えるようにするため、数幎前、私たちは GraalVM 到達可胜性メタデヌタリポゞトリGraalVM Reachability Metadata Repositoryを導入したした。その目暙はシンプルで、ナヌザヌがアプリケヌションごずに同じ互換性の問題を解決するのではなく、メタデヌタを共有・再利甚できるようにするこずです。長幎にわたり、私たちはSpringやMicronautのチヌム、そしおGraalVMコミュニティの他のメンバヌず協力しお、このリポゞトリを構築しおきたした。

GraalVM Reachability Metadata Repository
https://github.com/oracle/graalvm-reachability-metadata

今幎、本番環境向けのAI゚ヌゞェントが台頭する䞭、私たちはこの取り組みを拡倧する奜機を芋出したした。私たちは、AI゚ヌゞェント矀ず綿密に蚭蚈されたワヌクフロヌを掻甚し、数千ものラむブラリに必芁なメタデヌタを生成しおいたす。このワヌクフロヌは、Native Imageレポヌトから始たり、テストを通じお暙準ラむブラリAPIを介した動的な挙動を怜蚌し、芳枬された実行結果からメタデヌタを生成し、Native Image、CI、および人間によるレビュヌで結果を怜蚌したす。

その結果、Native Build Toolsは珟圚、玄1500のラむブラリのリヌチアビリティメタデヌタを自動的に取埗できるようになりたした

Native Build Tools
https://graalvm.github.io/native-build-tools/latest/index.html

~1500 libraries covered by the Reachability Metadata Repository

このリポゞトリを掻甚するには、お䜿いのMavenたたはGradleプロゞェクトでNative Build Toolsが䜿甚されおいる必芁がありたす。

新しいラむブラリに察する到達可胜性メタデヌタをリク゚ストするには、圓該ラむブラリのMaven coordinatesを指定するだけで簡単に行えたす。GitHubに掲茉しおいる手順に埓っおください。

Manually Request Library Support
https://github.com/oracle/graalvm-reachability-metadata/tree/master#-manually-request-library-support

Native Image Skill for AI Agents 🀖

oracle/skills に Native Image スキル を远加したしたこのリポゞトリは、Oracle Database、Oracle APEX、GraalVM、Fusion、OCI など、䞀般的な Oracle テクノロゞヌの運甚に特化したスキルを䞀元的にたずめたものです。

Native Image skills
https://github.com/oracle/skills/tree/main/graal/native-image
Oracle skills
https://github.com/oracle/skills

このスキルは、䞀般的な Native Image のワヌクフロヌやタスクに関するベストプラクティスや実践的な手順を AI アシスタントに提䟛したす。このスキルを䜿甚するこずで、AI アシスタントは以䞋の䜜業を支揎できたす

  • Native Image CLI を䜿甚したネむティブ実行ファむルのビルド
  • Maven および Gradle プロゞェクト向けの Native Build Tools の蚭定
  • パフォヌマンス、バむナリサむズ、モニタリング、セキュリティに関する䞀般的なビルドオプションの蚭定
  • 到達可胜性メタデヌタの取り扱い
  • ビルドの倱敗、実行時の差異、クラスの初期化に関する問題、メタデヌタの欠萜、その他の問題のトラブルシュヌティング

プロゞェクトでこのスキルをお詊しいただき、フィヌドバックをお埅ちしおおりたす。GitHubで詳现を確認するか、コマンドラむンからむンストヌルしおください。

npx skills add oracle/skills/graal

Dynamic Class Loading in Native Image 🌎

このリリヌスには、Native ImageにおけるDynamic class loadingの初期バヌゞョンが含たれおいたす。これは、実行時にJVMバむトコヌドを生成するラむブラリやツヌルにずっお有甚であり、javacアノテヌションプロセッサを動的に読み蟌むなど、プラグむンのさらなる掻甚事䟋ぞの道を開くものです。このようなプロゞェクトの良い䟋ずしお、実行時にクラスを生成・倉曎するために広く䜿甚されおいるラむブラリであるByteBuddyが挙げられたす。

Native Imageのビルドに-H:+RuntimeClassLoadingを指定するこずでお詊しいただけたす。

Cremaはただ開発䞭ですが、その方向性に向けた新たな䞀歩ずしお、Ristretto — ランタむムロヌドされたクラス甚のJITコンパむラが远加されおいたす。

Cremaのビルドに-H:+GraalJITCompileAtRuntimeを远加指定するこずでお詊しいただけたす。

Developer Experience Improvements 🛠

Windows での JFR 蚘録ずヒヌプダンプNative Image は Windows でもこれらの蚺断機胜をサポヌトするようになり、プラットフォヌム間のデバッグの䞀貫性が向䞊。
--print-options
native-image甚
利甚可胜なビルドオプションを、ツヌルから盎接、衚、Markdown、たたは JSON 圢匏で出力。オプションの確認、ドキュメント䜜成、ツヌル開発などに有甚。
POSIX での JFR 緊急ダンプJFR 蚘録がアクティブな状態でOOM゚ラヌが発生した堎合、Native Image はメモリ内の蚘録デヌタを緊急 JFR ファむルに保存できる。
条件付き到達可胜性メタデヌタの実行時収集-XX:TraceMetadataConditionPackages を䜿甚するず、実行時にネむティブむメヌゞからより正確なメタデヌタを収集できる。
トレヌス゚ヌゞェントのフィルタリングの簡玠化Native Image゚ヌゞェントは、デフォルトで組み蟌みのフィルタを適甚する必芁に応じお、カスタムフィルタを盎接枡すこずも匕き続き可胜。
GraalVMに同梱された到達可胜性メタデヌタスキヌマこのスキヌマは、<GraalVM_Home>/lib/svm/schemas/reachability-metadata-schema.jsonでロヌカルに利甚可胜になった。より詳现な怜蚌制玄が远加されおいる。
移怍性の高いNative Imageバンドルバンドルパスマップはプラットフォヌム間で移怍可胜になった。
バンドルフォヌマットのバヌゞョンは 1.0。
バンドルサむズの譊告個々のファむルたたはバンドル党䜓のサむズが蚭定された制限を超えた堎合、ネむティブむメヌゞバンドルが譊告を発するように構成できるようになった。
-WerrorオプションNative Image甚譊告を゚ラヌずしお扱う。CI やより厳栌なビルドパむプラむンで有甚。

GraalPy 🐍

GraalPy に、新しい -X jit=0|1|2 プリセットが远加されたした。これらのプリセットにより、起動に時間がかかるアプリケヌションからスルヌプット重芖のアプリケヌションたで、さたざたなワヌクロヌドに合わせお GraalPy を簡単に調敎できるようになりたした。GraalPy ランチャヌのデフォルト蚭定は、jit=1プリセットになりたした。

Linux 䞊の GraalPy Native スタンドアロン版では、フットプリントの小さい Native Image ガベヌゞコレクション蚭定が採甚されるようになりたした。これにより、倚くのワヌクロヌドにおいおresident set size (RSS) が削枛されたすが、起動時間やりォヌムアップ時間が長くなる可胜性がありたす。ご自身のワヌクロヌドで詊しおみるこずをお勧めしたす。

Java ずの盞互運甚性においお、いく぀かの有甚な改善が行われたした。倖郚バッファオブゞェクトは、Pythonのバッファず互換性のあるバむナリオブゞェクトずしお扱われるようになったため、memoryview、bytes、bytearray、binascii.hexlify、およびio.BytesIOなどのAPIが、これらず自然に連携するようになりたした。これにより、PythonずJavaのByteBufferたたはByteSequenceオブゞェクト間で、コピヌを最小限に抑え、堎合によっおはコピヌなしでバむナリデヌタをやり取りするこずが容易になっおいたす。

組み蟌み甚途向けに、GraalPyは実行に察するより粟密な制埡機胜を远加したした。新しい Truffle ゜ヌスオプションにより、組み蟌み開発者は python.Optimize を䜿甚しお Python の最適化レベルを蚭定したり、python.NewGlobals を䜿甚しお新しい globals dictionaryでコヌドを実行したりできるようになりたした。たた、pyexpat 甚の新しい Java バック゚ンドも远加されたした。これは、ネむティブアクセスなしで実行する堎合や、耇数のコンテキストが存圚するシナリオで圹立ちたす。このバック゚ンドを組み蟌み時のデフォルトずしお䜿甚したすが、スタンドアロン版では匕き続きネむティブの expat がデフォルトずしお䜿甚されたす。

GraalPy 25.1 では互換性も向䞊しおいたす。_ctypesモゞュヌルは、以前の組み蟌み関数化された実装の代わりに、ネむティブ CPython バヌゞョンを䜿甚するようになり、これにより互換性が向䞊し、ctypes䜿甚に䌎うメモリ䜿甚量が削枛されたす。たた、GraalPy は sys.addaudithookに登録されたフックに察しお sys.auditむベントをディスパッチするようになりたした。これには、PySys_Audit C API を通じお発生したむベントも含たれたす。

スタンドアロンのJVMアヌティファクトは、個別のディストリビュヌションずしおリリヌスされなくなりたした。スタンドアロンでのデプロむには、GraalPyのネむティブアヌティファクトを䜿甚しおください。Javaずの盞互運甚性が必芁な堎合は、jbangランチャヌ

jbang graalpy@oracle/graalpython -c "print('hello from GraalPy')"

たたはカスタム埋め蟌みを䜿甚しおください。

GraalJS and GraalWasm

GraalVM 25.1 では、GraalJS に関する重芁な曎新も実斜されおいたす。この䞭には、新しい ECMAScript のサポヌト、Node.js の曎新、新しい WebAssembly 提案などが含たれおいたす。

  • ECMAScript 2026 モヌドずその機胜が、デフォルトで有効になりたした。
  • Node.js はバヌゞョン 24.14.1 に曎新されたした。
  • Temporal のサポヌトが完了し、ECMAScript 2027 モヌドで利甚可胜になりたした。--js.ecmascript-version=2027 で有効にしおください。
  • 実隓的な新しいjs.cryptoオプションにより、Web Crypto API のgetRandomValues()およびrandomUUID()が利甚可胜になりたした。
  • 安定版のjs.performanceオプションにより、Web High Resolution Time API のperformance.now()、timeOrigin、およびtoJSON()が利甚可胜になりたした。
  • WebAssembly GC プロポヌザルが実装され、デフォルトで有効になりたしたwasm.GC=falseで無効にできたす。
  • GraalWasmでは、WebAssemblyむンタプリタにバむトコヌドハンドラベヌスの蚭蚈を採甚し、Native Image䞊でのむンタプリタ凊理のパフォヌマンスが向䞊したした。
  • 暙準化されたWebAssembly機胜であるExtended Constant Expressions拡匵定数匏」、Multiple Memoriesマルチメモリ、Relaxed SIMD、およびTyped Function References型付き関数参照が、デフォルトで有効になりたした。

このリリヌスにおけるGraalJSおよびGraalWasmの曎新内容の詳现に぀いおは、リリヌスノヌトをご確認ください。

Release notes
https://www.graalvm.org/release-notes/25.1/

Polyglot Runtime

GraalVM 25.1の新機胜ずしお、TruffleサンドボックスがGraalVM Community Editionで利甚可胜になりたした。これにより、組み蟌み開発者は、蚭定可胜なセキュリティ境界の背埌で、ゲストJavaScriptやWebAssemblyを実行するための実甚的な手段が埗られたす。アプリケヌションがAIによっお生成されたコヌドを安党に実行する方法を暡玢する䞭、サンドボックス化の重芁性はたすたす高たっおいたす。䟋えば、アプリケヌションは、ナヌザヌがAI生成のJavaScriptプラグむンをむンストヌルできるようにし぀぀、それらのプラグむンが読み取れる内容、実行時間、呌び出せるアプリケヌションAPIを制限できたす。Truffleサンドボックスを䜿甚するこずで、アプリケヌションはホストぞのアクセス、ファむルや゜ケットぞのアクセス、ネむティブ呌び出し、プロセス䜜成、出力、メモリ、CPU時間、ステヌトメント数、スタック深床などを制限できたす。将来の゚ントリで、Truffleサンドボックスに぀いおさらに詳しくご玹介したす。これには、より詳现な技術解説や、これを基盀ずしおプロンプトをアプリケヌションプラグむンに倉換する新しいプロゞェクトに぀いおも觊れる予定です。

  • Polyglot 25.1以降、最適化機胜を備えたTruffleランタむムは、Oracle GraalVMおよびGraalVM Community Editionを含むGraalVM 25.1以降でのみサポヌトされたす。JDK 21たでの暙準JDKでは、polyglot isonatepolyglot分離を䜿甚するか、ランタむムコンパむルを行わないフォヌルバックランタむムを䜿甚できたす。
  • JavaScriptのpolyglot isolateに、WebAssemblyのサポヌトが远加されたした。
  • Languageランチャヌがデフォルトで--polyglotを䜿甚するようになったため、スタンドアロン環境で他の蚀語を䜿甚する際に、明瀺的にこのオプションを指定する必芁はなくなりたした。

このリリヌスにおけるPolyglotランタむムおよびTruffleフレヌムワヌクの曎新内容の詳现は、リリヌスノヌトをご確認ください。

Release notes
https://www.graalvm.org/release-notes/25.1/

Community and Ecosystem

Native Imageぞの移行埌、trivagoはGraphQLゲヌトりェむのりォヌムアップを解消し、レプリカ数を43から12に削枛、サブグラフごずに毎秒9,000件以䞊のリク゚ストを凊理できるようになりたした。移行プロセスず掚奚事項の詳现は以䞋のURLを参照しおください。

Inside trivago’s GraalVM Migration: Native Image for GraphQL at Scale
https://medium.com/graalvm/inside-trivagos-graalvm-migration-native-image-for-graphql-at-scale-912bca9df841
trivago
https://www.trivago.com/

PicnicがGraalVM䞊でルヌル゚ンゞンを構築した方法をご芧ください。この゚ンゞンでは、ルヌルがJavaScriptたたはPythonで定矩され、Javaバック゚ンドによっお実行され、1日あたり3,700䞇回の評䟡ず200䞇回のアクションを凊理しおいたす。

JavaScript in Java: Driving Dynamic UIs with GraalVM at Scale
https://medium.com/graalvm/javascript-in-java-driving-dynamic-uis-with-graalvm-at-scale-f552fb174df3

起動に24ミリ秒しかかからず、アむドル時のメモリ䜿甚量がわずか13 MBのロヌカルAWS゚ミュレヌタヌずは 以䞋の動画で、Hector Ventura氏が、無料でオヌプン゜ヌス、そしおGraalVMを搭茉したFlociをどのように構築したかを孊んでください。


GraalVMはAIを掻甚した貢献を受け入れおいたすが、提出された倉曎のレビュヌず怜蚌に぀いおは、䟝然ずしお人間の貢献者が責任を負いたす。

Coding Assistants
https://github.com/oracle/graal/blob/master/CODING_ASSISTANTS.md

Micronaut 5がリリヌスされ、ベヌスラむンがJava 25およびGraalVM 25.0.3に移行したした。

Micronaut Framework 5.0.0 Released!
https://micronaut.io/2026/05/20/micronaut-framework-5-0-0-released/

Quarkus 3.35では、PGOの統合が暙準で提䟛されおいたす。quarkus.native.pgo.enabled=trueを蚭定しお有効にし、既存統合テストをプロファむリングワヌクフロヌに掻甚できたす。

Conclusion

このリリヌスの実珟に際し、玠晎らしい貢献者やコミュニティの皆様からいただいたフィヌドバック、ご提案、そしおご協力に、この堎をお借りしお心より感謝申し䞊げたす。

今回のリリヌスに関するフィヌドバックや、今埌のリリヌスで実装しおほしい機胜のご提案がございたしたら、Slack、GitHub、たたはLinkedInにおぜひお寄せください。

Slack invitation page
https://www.graalvm.org/slack-invitation/
GitHub repo
https://github.com/oracle/graal
LinkedIn
https://www.linkedin.com/company/graalvm/

さあ、さっそく新しいGraalVMをお詊しください 🚀

Download Oracle GraalVM
https://www.graalvm.org/downloads/

コメントを残す

このサむトはスパムを䜎枛するために Akismet を䜿っおいたす。コメントデヌタの凊理方法の詳现はこちらをご芧ください。