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
0
240
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
390
GraalVM Native Image トラブルシューティング機能の最新状況(2025年版)
ntt_dsol_java
0
270
GraalVM Native Image 解析方法の紹介
ntt_dsol_java
0
43
Native Memory Tracking を使用した Java プロセスメモリ消費内訳の紹介
ntt_dsol_java
0
39
Other Decks in Technology
See All in Technology
AIはどのように 組織のアジリティを変えるのか?
junki
0
400
白金鉱業Meetup_Vol.24_「AIエージェントは分けるほど良い」は本当か? / Is it true that “the more you divide AI agents, the better”?
brainpadpr
1
310
失敗を資産に変えるClaude Code
shinyasaita
0
510
LLMにもCAP定理があるという話
harukasakihara
0
300
手塩にかけりゃいいってもんじゃない
ming_ayami
0
440
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
20
6.6k
自宅LLMの話
jacopen
1
400
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
140
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
620
10倍の生産性を実現するAI駆動並列エージェントのすべて
kumaiu
5
1.4k
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
850
Agent Skills設計で柔軟性と硬さのバランスが難しい話
nassy20
0
120
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Evolving SEO for Evolving Search Engines
ryanjones
0
210
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
170
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
210
Typedesign – Prime Four
hannesfritz
42
3.1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
420
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