Startup ~2x slower with AOT class linking: agent retransforms ~22k preloaded classes (JDK 25, 1.67.0)
Mantenedores costumam responder em até 2 dias
@mcculls já está trabalhando nisso.
Desde 8/10/2026.
Avaliação
Esta issue ainda não foi avaliada.
Descrição
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
- Linguagem predominante
- Java
- Estrelas
- 738
- Forks
- 364
- Merge médio
- 3d 5h
- PRs com merge (30d)
- 224
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de DataDog/dd-trace-java
-
type: bug report
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
DataDog/dd-trace-java#12818 · 5 reações ·
Mantenedores costumam responder em até 2 dias
-
Update DEFAULT_HTTP_CLIENT_ERROR_STATUSES to include 5xx status codesTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Abertatype: feature request
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 70/100
DataDog/dd-trace-java#10245 · 1 comentário ·
Mantenedores costumam responder em até 2 dias
-
dd-trace-ot 1.67.x: NoClassDefFoundError `ddtrot/dd/trace/api/llmobs/LLMObs`Talvez já em andamento @amarziali assumiu há 8 dias. Abertatype: bug report
DataDog/dd-trace-java#12857 · 1 reação · 1 responsável ·
Mantenedores costumam responder em até 2 dias
-
type: feature request
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
DataDog/dd-trace-java#12838 · 2 comentários ·
Mantenedores costumam responder em até 2 dias
-
gRPC server instrumentations (grpc-1.5, armeria-grpc) don't make extracted W3C baggage current in the handlerTalvez já em andamento @mcculls assumiu há 24 dias. Abertacomp: context propagation inst: grpc type: feature request
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 78/100
DataDog/dd-trace-java#12654 · 1 responsável ·
Mantenedores costumam responder em até 2 dias
Todas as issues de DataDog/dd-trace-java
Issues semelhantes
-
status: needs-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
JabRef/jabref#17546 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
hiero-ledger/hiero-sdk-java#3010 ·
Mantenedores costumam responder em até 1 dia
-
Optimize consumer version heatmap aggregation to avoid repeated scansTalvez já em andamento @praykaria31 assumiu hoje. Abertatype/enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Apicurio/apicurio-registry#10662 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
a:false-positive
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
Mantenedores costumam responder em até 1 dia
-
status: waiting-for-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
spring-projects/spring-boot#52347 ·
Mantenedores costumam responder em até 2 dias