Startup ~2x slower with AOT class linking: agent retransforms ~22k preloaded classes (JDK 25, 1.67.0)
Les mainteneurs répondent en général sous 2 jours
@mcculls y travaille déjà.
Depuis le 8/10/2026.
Évaluation
Cette issue n'a pas encore été évaluée.
Description
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
- Langage dominant
- Java
- Étoiles
- 736
- Forks
- 364
- Merge moyen
- 3 j 9 h
- PR mergées (30 j)
- 219
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de DataDog/dd-trace-java
-
type: bug report
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
DataDog/dd-trace-java#12818 · 4 réactions ·
Les mainteneurs répondent en général sous 2 jours
-
Update DEFAULT_HTTP_CLIENT_ERROR_STATUSES to include 5xx status codesPeut-être à nouveau libre Une pull request pour cette issue a été fermée sans être fusionnée. Ouvertetype: feature request
Difficulté 1/5 1-3 heures Accessibilité débutants 70/100
DataDog/dd-trace-java#10245 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
dd-trace-ot 1.67.x: NoClassDefFoundError `ddtrot/dd/trace/api/llmobs/LLMObs`Peut-être pris @amarziali l’a pris il y a 3 jours. Ouvertetype: bug report
DataDog/dd-trace-java#12857 · 1 réaction · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
type: feature request
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
DataDog/dd-trace-java#12838 · 2 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
gRPC server instrumentations (grpc-1.5, armeria-grpc) don't make extracted W3C baggage current in the handlerPeut-être pris @mcculls l’a pris il y a 18 jours. Ouvertecomp: context propagation inst: grpc type: feature request
Difficulté 3/5 1-2 jours Accessibilité débutants 78/100
DataDog/dd-trace-java#12654 · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de DataDog/dd-trace-java
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
apache/rocketmq-dashboard#6896 ·
Les mainteneurs répondent en général sous 3 jours
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
OpenIntegrationEngine/engine#496 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
SasanLabs/VulnerableApp#836 ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement frontend
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Albertinesilva/backend-engineering-journey-java-springboot#46 ·
-
Snyk: vulnerabilities in jackson-databind 2.21.5Peut-être pris @harrywu23 l’a pris aujourd’hui. Ouvertebug
Difficulté 1/5 1-3 heures Accessibilité débutants 80/100
SOFTENG-310-Group-4/Project-A1-310-Group-4#115 ·
Les mainteneurs répondent en général sous 1 jour