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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
300
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
420
GraalVM Native Image トラブルシューティング機能の最新状況(2025年版)
ntt_dsol_java
0
280
GraalVM Native Image 解析方法の紹介
ntt_dsol_java
0
52
Native Memory Tracking を使用した Java プロセスメモリ消費内訳の紹介
ntt_dsol_java
0
43
Other Decks in Technology
See All in Technology
VPCセキュリティ対応の最新事情
nagisa53
1
340
QA・ソフトウェアテスト研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
3
1.7k
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
130
QAタスクをスキル化したいときに考えること
aomoriringo
0
130
GMOフィナンシャルゲートが挑む、「止まらない」決済インフラ構築の裏側【SORACOM Discovery 2026】
soracom
PRO
0
110
現場をAIで動かす「フィジカル AI」の組み込み設計の考え方【SORACOM Discovery 2026】
soracom
PRO
0
150
AIがコードを書く時代、人間は何を保証するのか———馬場さんと考える、開発者に求められる新しい責任と価値 - TECH PLAY
netmarkjp
0
320
Retriever と Reranker、結局どうする?
kazuaki
1
450
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
190
それでも、技術なブログを書く理由 #kichijojipm / Why I Still Write Tech Blogs Even Now
shinkufencer
0
1.2k
歴史から理解するクラウドインフラのしくみ
kizawa2020
0
190
現場との対話から始める “作る前に問い直す”業務改善
mochico50
2
340
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Believing is Seeing
oripsolob
1
170
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
350
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
400
A better future with KSS
kneath
240
18k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
Building Applications with DynamoDB
mza
96
7.1k
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