Startup ~2x slower with AOT class linking: agent retransforms ~22k preloaded classes (JDK 25, 1.67.0)
I maintainer di solito rispondono entro 2 giorni
@mcculls ci sta già lavorando.
Dal 8/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
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
- Lingua principale
- Java
- Stelle
- 736
- Fork
- 364
- Merge medio
- 3g 9h
- PR unite (30g)
- 219
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DataDog/dd-trace-java
-
type: bug report
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
DataDog/dd-trace-java#12818 · 3 reazioni ·
I maintainer di solito rispondono entro 2 giorni
-
Update DEFAULT_HTTP_CLIENT_ERROR_STATUSES to include 5xx status codesForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertatype: feature request
Difficoltà 1/5 1-3 ore Idoneità per principianti 70/100
DataDog/dd-trace-java#10245 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
dd-trace-ot 1.67.x: NoClassDefFoundError `ddtrot/dd/trace/api/llmobs/LLMObs`Forse già presa @amarziali l’ha presa oggi. Apertatype: bug report
DataDog/dd-trace-java#12857 · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
-
type: feature request
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
DataDog/dd-trace-java#12838 · 2 commenti ·
I maintainer di solito rispondono entro 2 giorni
-
gRPC server instrumentations (grpc-1.5, armeria-grpc) don't make extracted W3C baggage current in the handlerForse già presa @mcculls l’ha presa 16 giorni fa. Apertacomp: context propagation inst: grpc type: feature request
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
DataDog/dd-trace-java#12654 · 1 assegnatario ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di DataDog/dd-trace-java
Issue simili
-
`timer` rule rejects dates the engine acceptsForse già presa @MFA-G l’ha presa oggi. Apertabug ready
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
camunda/bpmnlint-plugin-camunda-compat#281 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
status: waiting-for-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
AOT compilation fails for derived delete queries returning SetForse già presa @ryujungkyun l’ha presa oggi. Apertastatus: waiting-for-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
spring-projects/spring-data-jpa#4387 ·
I maintainer di solito rispondono entro 3 giorni