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
23
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
330
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
430
GraalVM Native Image トラブルシューティング機能の最新状況(2025年版)
ntt_dsol_java
0
290
GraalVM Native Image 解析方法の紹介
ntt_dsol_java
0
54
Native Memory Tracking を使用した Java プロセスメモリ消費内訳の紹介
ntt_dsol_java
0
45
Other Decks in Technology
See All in Technology
【GCC2026】大規模言語モデルを活用した内製検索サービスの社内展開や業務活用
bandainamcostudios
PRO
0
270
SO-101×VLAによる3色キューブのピック&プレース
abeja
0
220
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
280
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
2
450
LanceDB入門
mocobeta
9
600
ラジオの科学
frievea
0
350
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
640
事業価値と Engineering 2026年度版
recruitengineers
PRO
51
25k
その“隠したつもり”が命取り ── 自前と平文をやめて「正解」に委ねる
kuroneko13
0
130
What's new in Go 1.27?
ciarana
0
260
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
290
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
240
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.3k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How STYLIGHT went responsive
nonsquared
100
6.2k
Designing for Timeless Needs
cassininazir
1
450
Optimizing for Happiness
mojombo
378
71k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
Designing for humans not robots
tammielis
254
26k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Marketing to machines
jonoalderson
1
5.7k
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