Startup ~2x slower with AOT class linking: agent retransforms ~22k preloaded classes (JDK 25, 1.67.0)
メンテナーはふだん 2 日以内に返信
@mcculls がすでに取り組んでいます。
2026年10月8日 から。
評価
この issue はまだ評価されていません。
説明
Tracer Version(s)
1.67.0
Java Version(s)
Temurin 25.0.2
JVM Vendor
Eclipse Adoptium / Temurin
Bug Report
Since AOT support has been improved here:
- https://github.com/DataDog/dd-trace-java/issues/10479
- https://github.com/DataDog/dd-trace-java/issues/12540
We have been trying out fully utilizing AOT. We are able to see gains on application start time at around 60% speed improvements. We notice before the app starts though, it's slowed down significantly, leaving us with only a total 20% speed improvement overall for startup.
Some examples from our actual applications:
Before (6 Oct):
2026-10-06T22:24:00Z Started FooApplicationKt in 13.317 seconds (process running for 15.688) gap 2.4s
2026-10-06T22:22:47Z Started FooApplicationKt in 14.593 seconds (process running for 17.011) gap 2.4s
2026-10-06T22:21:54Z Started FooApplicationKt in 14.482 seconds (process running for 17.007) gap 2.5s
After (8 Oct):
2026-10-08T16:45:05Z Started FooApplicationKt in 6.136 seconds (process running for 12.36) gap 6.2s
2026-10-08T16:45:04Z Started FooApplicationKt in 7.517 seconds (process running for 14.191) gap 6.7s
2026-10-08T16:38:03Z Started FooApplicationKt in 5.985 seconds (process running for 12.091) gap 6.1s
Expected Behavior
AOT application startup speed improvements should not be negated at pre-application startup stage.
Reproduction Code
Here's a repro:
https://gist.github.com/davidgoldtempo/fdc330f67eeba5848689e8a7fd4d815c
JDK: openjdk version "25.0.2" 2026-01-20 LTS
Agent: dd-java-agent 1.67.0
Runs: 5 per variant
Work: /tmp/aot-startup-repro-work (rm -rf to clean up)
Main: org.springframework.samples.petclinic.PetClinicApplication
Training AOT caches...
=== median of 5 starts, dd-java-agent 1.67.0 ===
(pre-spring gap = JVM uptime at 'Started' minus Spring's own startup time)
no AOT, no agent spring= 3.20s process= 3.41s pre-spring gap= 0.21s redefined-classes=0
no AOT, agent spring= 3.87s process= 4.91s pre-spring gap= 1.04s redefined-classes=8
AOT no-classlink, agent spring= 3.80s process= 4.88s pre-spring gap= 1.08s redefined-classes=8
AOT classlink, no agent spring= 1.14s process= 1.36s pre-spring gap= 0.23s redefined-classes=0
AOT classlink, agent <== SLOW GAP spring= 1.20s process= 3.32s pre-spring gap= 2.12s redefined-classes=87
- 主要言語
- Java
- スター
- 736
- フォーク
- 364
- 平均マージ
- 3日 13時間
- マージ済み PR(30日)
- 213
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
DataDog/dd-trace-java のほかの issue
-
type: bug report
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
DataDog/dd-trace-java#12818 ·
メンテナーはふだん 2 日以内に返信
-
Update DEFAULT_HTTP_CLIENT_ERROR_STATUSES to include 5xx status codes再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープンtype: feature request
難易度 1/5 1〜3時間 初心者へのやさしさ 70/100
DataDog/dd-trace-java#10245 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
gRPC server instrumentations (grpc-1.5, armeria-grpc) don't make extracted W3C baggage current in the handler対応中かも @mcculls が 13 日前に担当しました。 オープンcomp: context propagation inst: grpc type: feature request
難易度 3/5 1〜2日 初心者へのやさしさ 78/100
DataDog/dd-trace-java#12654 · 担当者 1 名 ·
メンテナーはふだん 2 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 62/100
DataDog/dd-trace-java#12608 ·
メンテナーはふだん 2 日以内に返信
-
type: bug report
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
DataDog/dd-trace-java#12597 ·
メンテナーはふだん 2 日以内に返信
DataDog/dd-trace-java の issue をすべて見る
似ている issue
-
BoxAttachmentMulti parsing leaks IOException / ArrayIndexOutOfBoundsException on malformed content instead of IllegalArgumentException対応中かも @Kshot3000 が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
ergoplatform/ergo-appkit#272 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
utopia-rise/godot-jvm#1004 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
spring-projects/spring-grpc#442 ·