Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
JEP 516: Ahead-of-Time Object Caching with AnyG...
Search
NTTドコモソリューションズ Java担当
March 24, 2026
Technology
18
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
JEP 516: Ahead-of-Time Object Caching with AnyGC 概説
JJUGナイトセミナー「Java 26 リリース記念イベント」のライトニングトークで発表した JEP 516 に関する資料です。
NTTドコモソリューションズ Java担当
March 24, 2026
More Decks by NTTドコモソリューションズ Java担当
See All by NTTドコモソリューションズ Java担当
Spring Boot における AOT Cache 活用テクニックと 起動時間改善事例
ntt_dsol_java
1
270
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
410
GraalVM Native Image トラブルシューティング機能の最新状況(2025年版)
ntt_dsol_java
0
270
GraalVM Native Image 解析方法の紹介
ntt_dsol_java
0
44
Native Memory Tracking を使用した Java プロセスメモリ消費内訳の紹介
ntt_dsol_java
0
40
Other Decks in Technology
See All in Technology
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
140
5分でわかるDuckDB Quack
chanyou0311
4
310
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
340
“ID沼入口” - 基本とセキュリティから始める、考え続けるためのID管理技術勉強会 告知&イントロ
ritou
0
380
初めてのDatabricks勉強会
taka_aki
2
230
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
150
Tech-Verse 2026_Keynote
lycorptech_jp
PRO
0
130
事業価値を⽣み出すSREへ SREが担うべき意思決定の5層
kenta_hi
0
130
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
420
【FinOps】データドリブンな意思決定を目指して
z63d
3
600
Claude Codeとハーネスについて考えてみる
oikon48
16
7.5k
Fabricをフル活用する AI Agent Hub -製造業特化AIエージェントの設計
iotcomjpadmin
0
190
Featured
See All Featured
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
Color Theory Basics | Prateek | Gurzu
gurzu
0
380
Thoughts on Productivity
jonyablonski
76
5.2k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Transcript
JEP 516: Ahead-of-Time Object Caching with Any GC 2026-03-24 JJUG
ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026
自己紹介 坂本統(さかもとおさむ) NTT ドコモソリューションズの Java/OpenJDK エンジニア JJUG CCC 2026 Spring
でも AOT Cache についてお話させていただく予定 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 2
JEP 516 とは? AOT Cache が ZGC をサポートするようになった どの GC
方式でも AOT Cache が利用可能に 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 3
AOT Cache とは? Java App の起動時間を高速化する JDK の機能 トレーニング実行( -XX:AOTCacheOutput
)で以下をキャッシュ化: ロード&リンクしたクラス メソッドプロファイル情報 本番実行( -XX:AOTCache )でこれらのキャッシュを活用 → 起動時間が高速化 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 4
これまで JDK 24, 25 は Serial/Parallel/G1 のみサポート ZGC は未サポートだった JEP
483: Ahead-of-Time Class Loading & Linking ... Future work ZGC is not yet supported. We intend to address this limitation in future work. 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 5
これから JDK 26 から ZGC もサポート -XX:+UseZGC を指定してトレーニング&本番実行が可能に なお JDK
25 は利用不可のまま(バックポートされてなさそう) 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 6
なぜ ZGC をサポートできていなかった? Java オブジェクトのアドレス参照方式が GC ごとに異なるため キャッシュは Java ヒープを管理する
GC のオブジェクト参照方式に依存する Serial/Parallel/G1 :64 ビットアドレスに納まる形式でそれぞれ互換性あり ZGC :オブジェクトサイズが不定で独自のアドレス参照方式をもつ ZGC の参照方式ではキャッシュされたオブジェクトを Java ヒープに適切にマッピング できないためサポートできていなかった 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 7
どうやって ZGC をサポートした? GC 方式に依存しない方式を追加実装した アドレスに代わり論理インデックスを使用することで GC 方式に依存しなくなった オブジェクトをメモリに読み込むときはインデックスからアドレスへ変換する 〇
これまでのオブジェクト参照の格納方式(メモリアドレス方式) header: ... | value: 0x4002045278 | coder: ... | hash: ... | hashIsZero: ... 〇 論理インデックスを使用した格納方式(論理インデックス方式) header: ... | value: 5 | coder: ... | hash: ... | hashIsZero: ... 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 8
新しいオプション Serial/Parallel/G1GC でも論理インデックス方式を使用可能 それぞれの方式のパフォーマンスは状況や環境によって変わる (例えば AOT Cache のファイルシステムキャッシュの有無など) どちらにするかはトレーニング時に JVM
がヒューリスティックに決定する ただし -XX:+AOTStreamableObjects を指定すると論理インデックス方式を使用する なお -XX:+UnlockDiagnosticVMOptions とセットで指定が必要 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 9
試してみた Spring PetClinic で G1GC と ZGC の AOT Cache
性能を比較 ZGC でも G1GC と遜色なく Tomcat 起動時間を短縮できることを確認 Baseline AOT Cache 0.00 1.00 2.00 3.00 4.00 5.00 6.00 Spring PetClinic - Tomcat Startup Time(sec) OpenJDK 26 with ZGC app jvm Baseline AOT Cache AOT Cache(Streamable) 0.00 1.00 2.00 3.00 4.00 5.00 6.00 Spring PetClinic - Tomcat Startup Time(sec) OpenJDK 26 with G1GC app jvm 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 10
まとめ JDK 26 から AOT Cache が ZGC をサポート JDK
25 は AOT Cache と ZGC を併用できない ZGC サポートのため GC 方式に依存しない新しいキャッシュ方式が追加された 新旧のキャッシュ方式のどちらがパフォーマンスがよいかは状況による -XX:+AOTStreamableObjects で GC に依存しない方式を指定可能 2026-03-24 JJUG ナイトセミナー「Java 26 リリース記念イベント」 NTT DOCOMO SOLUTIONS, Inc. 2026 11