Skip to content

Skip JAXB generated classes classloader #9003

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

bric3
Copy link
Contributor

@bric3 bric3 commented Jun 18, 2025

What Does This Do

Skips com.ibm.xml.xlxp2.jaxb.codegen.AbstractGeneratedStubFactory$RootStubClassLoader.

Before client had to do manually add the following arg: -Ddd.trace.classloaders.exclude=com.ibm.xml.xlxp2.jaxb.codegen.AbstractGeneratedStubFactory$RootStubClassLoader

Motivation

In a OSGI environment JAXB code generation creates a lot com.ibm.xml.xlxp2.jaxb.codegen.AbstractGeneratedStubFactory$RootStubClassLoader this classloader is used to define generated classes that must be actually defined in the correct OSGI bundle.

Given the tracer needs to instrument classloading and also perform osgi bundle lookup this interaction create a lot of load in the tracer when these generated classes are defined.

Given this classloader is used for the generated classes, it is safe to exclude skip it.

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@bric3 bric3 requested a review from mcculls June 18, 2025 14:40
@pr-commenter
Copy link

pr-commenter bot commented Jun 18, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bdu/exclude-AbstractGeneratedStubFactory-RootStubClassLoader
git_commit_date 1750318132 1750321100
git_commit_sha 2f4c864 b42c64c
release_version 1.50.0-SNAPSHOT~2f4c864fa4 1.50.0-SNAPSHOT~b42c64c5c7
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1750322922 1750322922
ci_job_id 989590273 989590273
ci_pipeline_id 68206507 68206507
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-emldojjo-project-304-concurrent-0-ok7mkwt4 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-emldojjo-project-304-concurrent-0-ok7mkwt4 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 41 metrics, 12 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.024 s) : 0, 1023853
Total [baseline] (8.564 s) : 0, 8564090
Agent [candidate] (1.032 s) : 0, 1032255
Total [candidate] (8.565 s) : 0, 8564575
section iast
Agent [baseline] (1.151 s) : 0, 1150822
Total [baseline] (9.219 s) : 0, 9218644
Agent [candidate] (1.16 s) : 0, 1159826
Total [candidate] (9.275 s) : 0, 9274815
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.024 s -
Agent iast 1.151 s 126.969 ms (12.4%)
Total tracing 8.564 s -
Total iast 9.219 s 654.554 ms (7.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.032 s -
Agent iast 1.16 s 127.571 ms (12.4%)
Total tracing 8.565 s -
Total iast 9.275 s 710.24 ms (8.3%)
gantt
    title insecure-bank - break down per module: candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (684.183 ms) : 0, 684183
BytebuddyAgent [candidate] (689.744 ms) : 0, 689744
GlobalTracer [baseline] (241.1 ms) : 0, 241100
GlobalTracer [candidate] (242.676 ms) : 0, 242676
AppSec [baseline] (57.843 ms) : 0, 57843
AppSec [candidate] (56.377 ms) : 0, 56377
Debugger [baseline] (6.119 ms) : 0, 6119
Debugger [candidate] (6.934 ms) : 0, 6934
Remote Config [baseline] (731.021 µs) : 0, 731
Remote Config [candidate] (741.058 µs) : 0, 741
Telemetry [baseline] (10.444 ms) : 0, 10444
Telemetry [candidate] (12.139 ms) : 0, 12139
section iast
BytebuddyAgent [baseline] (802.581 ms) : 0, 802581
BytebuddyAgent [candidate] (809.866 ms) : 0, 809866
GlobalTracer [baseline] (231.248 ms) : 0, 231248
GlobalTracer [candidate] (232.313 ms) : 0, 232313
AppSec [baseline] (53.134 ms) : 0, 53134
AppSec [candidate] (53.243 ms) : 0, 53243
Debugger [baseline] (5.912 ms) : 0, 5912
Debugger [candidate] (5.946 ms) : 0, 5946
Remote Config [baseline] (597.877 µs) : 0, 598
Remote Config [candidate] (591.64 µs) : 0, 592
Telemetry [baseline] (7.875 ms) : 0, 7875
Telemetry [candidate] (7.975 ms) : 0, 7975
IAST [baseline] (26.052 ms) : 0, 26052
IAST [candidate] (26.377 ms) : 0, 26377
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.025 s) : 0, 1025285
Total [baseline] (10.645 s) : 0, 10645425
Agent [candidate] (1.025 s) : 0, 1024810
Total [candidate] (10.616 s) : 0, 10615982
section appsec
Agent [baseline] (1.179 s) : 0, 1179252
Total [baseline] (10.774 s) : 0, 10774452
Agent [candidate] (1.182 s) : 0, 1181939
Total [candidate] (10.727 s) : 0, 10727283
section iast
Agent [baseline] (1.15 s) : 0, 1150410
Total [baseline] (10.891 s) : 0, 10891216
Agent [candidate] (1.151 s) : 0, 1150982
Total [candidate] (10.918 s) : 0, 10917702
section profiling
Agent [baseline] (1.268 s) : 0, 1268340
Total [baseline] (10.908 s) : 0, 10907937
Agent [candidate] (1.264 s) : 0, 1264296
Total [candidate] (10.891 s) : 0, 10890507
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.025 s -
Agent appsec 1.179 s 153.967 ms (15.0%)
Agent iast 1.15 s 125.125 ms (12.2%)
Agent profiling 1.268 s 243.055 ms (23.7%)
Total tracing 10.645 s -
Total appsec 10.774 s 129.027 ms (1.2%)
Total iast 10.891 s 245.791 ms (2.3%)
Total profiling 10.908 s 262.512 ms (2.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.025 s -
Agent appsec 1.182 s 157.129 ms (15.3%)
Agent iast 1.151 s 126.172 ms (12.3%)
Agent profiling 1.264 s 239.486 ms (23.4%)
Total tracing 10.616 s -
Total appsec 10.727 s 111.301 ms (1.0%)
Total iast 10.918 s 301.721 ms (2.8%)
Total profiling 10.891 s 274.525 ms (2.6%)
gantt
    title petclinic - break down per module: candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (684.148 ms) : 0, 684148
BytebuddyAgent [candidate] (684.324 ms) : 0, 684324
GlobalTracer [baseline] (241.321 ms) : 0, 241321
GlobalTracer [candidate] (241.347 ms) : 0, 241347
AppSec [baseline] (59.236 ms) : 0, 59236
AppSec [candidate] (59.175 ms) : 0, 59175
Debugger [baseline] (7.47 ms) : 0, 7470
Debugger [candidate] (7.623 ms) : 0, 7623
Remote Config [baseline] (720.171 µs) : 0, 720
Remote Config [candidate] (743.826 µs) : 0, 744
Telemetry [baseline] (8.82 ms) : 0, 8820
Telemetry [candidate] (8.1 ms) : 0, 8100
section appsec
BytebuddyAgent [baseline] (707.786 ms) : 0, 707786
BytebuddyAgent [candidate] (710.109 ms) : 0, 710109
GlobalTracer [baseline] (235.995 ms) : 0, 235995
GlobalTracer [candidate] (236.234 ms) : 0, 236234
AppSec [baseline] (176.246 ms) : 0, 176246
AppSec [candidate] (176.169 ms) : 0, 176169
Debugger [baseline] (5.97 ms) : 0, 5970
Debugger [candidate] (5.968 ms) : 0, 5968
Remote Config [baseline] (615.893 µs) : 0, 616
Remote Config [candidate] (616.916 µs) : 0, 617
Telemetry [baseline] (7.296 ms) : 0, 7296
Telemetry [candidate] (7.344 ms) : 0, 7344
IAST [baseline] (21.849 ms) : 0, 21849
IAST [candidate] (21.881 ms) : 0, 21881
section iast
BytebuddyAgent [baseline] (802.726 ms) : 0, 802726
BytebuddyAgent [candidate] (803.616 ms) : 0, 803616
GlobalTracer [baseline] (230.9 ms) : 0, 230900
GlobalTracer [candidate] (230.668 ms) : 0, 230668
AppSec [baseline] (52.735 ms) : 0, 52735
AppSec [candidate] (51.946 ms) : 0, 51946
Debugger [baseline] (5.918 ms) : 0, 5918
Debugger [candidate] (5.927 ms) : 0, 5927
Remote Config [baseline] (606.372 µs) : 0, 606
Remote Config [candidate] (612.203 µs) : 0, 612
Telemetry [baseline] (7.907 ms) : 0, 7907
Telemetry [candidate] (7.874 ms) : 0, 7874
IAST [baseline] (26.177 ms) : 0, 26177
IAST [candidate] (26.874 ms) : 0, 26874
section profiling
BytebuddyAgent [baseline] (677.295 ms) : 0, 677295
BytebuddyAgent [candidate] (674.535 ms) : 0, 674535
GlobalTracer [baseline] (360.256 ms) : 0, 360256
GlobalTracer [candidate] (359.8 ms) : 0, 359800
AppSec [baseline] (61.9 ms) : 0, 61900
AppSec [candidate] (61.702 ms) : 0, 61702
Debugger [baseline] (6.149 ms) : 0, 6149
Debugger [candidate] (6.085 ms) : 0, 6085
Remote Config [baseline] (656.059 µs) : 0, 656
Remote Config [candidate] (659.593 µs) : 0, 660
Telemetry [baseline] (8.247 ms) : 0, 8247
Telemetry [candidate] (8.198 ms) : 0, 8198
ProfilingAgent [baseline] (103.174 ms) : 0, 103174
ProfilingAgent [candidate] (102.63 ms) : 0, 102630
Profiling [baseline] (103.198 ms) : 0, 103198
Profiling [candidate] (102.655 ms) : 0, 102655
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bdu/exclude-AbstractGeneratedStubFactory-RootStubClassLoader
git_commit_date 1750318132 1750321100
git_commit_sha 2f4c864 b42c64c
release_version 1.50.0-SNAPSHOT~2f4c864fa4 1.50.0-SNAPSHOT~b42c64c5c7
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1750322531 1750322531
ci_job_id 989590275 989590275
ci_pipeline_id 68206507 68206507
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-8bgay5fx-project-304-concurrent-0-mj3tqjw3 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-8bgay5fx-project-304-concurrent-0-mj3tqjw3 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 1 performance regressions! Performance is the same for 10 metrics, 12 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:petclinic:tracing:high_load better
[-2.168ms; -1.407ms] or [-4.893%; -3.175%]
unstable
[-3.406op/s; +12.281op/s] or [-3.226%; +11.631%]
42.520ms 110.025op/s 44.307ms 105.588op/s
scenario:load:petclinic:appsec:high_load worse
[+1.280ms; +2.191ms] or [+2.764%; +4.733%]
unstable
[-11.067op/s; +3.692op/s] or [-10.946%; +3.651%]
48.027ms 97.412op/s 46.292ms 101.100op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4
    dateFormat X
    axisFormat %s
section baseline
no_agent (37.136 ms) : 36837, 37435
.   : milestone, 37136,
appsec (46.292 ms) : 45884, 46700
.   : milestone, 46292,
code_origins (45.895 ms) : 45508, 46283
.   : milestone, 45895,
iast (44.812 ms) : 44432, 45192
.   : milestone, 44812,
profiling (49.249 ms) : 48766, 49732
.   : milestone, 49249,
tracing (44.307 ms) : 43948, 44666
.   : milestone, 44307,
section candidate
no_agent (36.687 ms) : 36391, 36983
.   : milestone, 36687,
appsec (48.027 ms) : 47589, 48465
.   : milestone, 48027,
code_origins (46.1 ms) : 45721, 46479
.   : milestone, 46100,
iast (44.857 ms) : 44469, 45246
.   : milestone, 44857,
profiling (49.322 ms) : 48820, 49824
.   : milestone, 49322,
tracing (42.52 ms) : 42171, 42869
.   : milestone, 42520,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.136 ms [36.837 ms, 37.435 ms] -
appsec 46.292 ms [45.884 ms, 46.7 ms] 9.156 ms (24.7%)
code_origins 45.895 ms [45.508 ms, 46.283 ms] 8.759 ms (23.6%)
iast 44.812 ms [44.432 ms, 45.192 ms] 7.676 ms (20.7%)
profiling 49.249 ms [48.766 ms, 49.732 ms] 12.113 ms (32.6%)
tracing 44.307 ms [43.948 ms, 44.666 ms] 7.171 ms (19.3%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 36.687 ms [36.391 ms, 36.983 ms] -
appsec 48.027 ms [47.589 ms, 48.465 ms] 11.34 ms (30.9%)
code_origins 46.1 ms [45.721 ms, 46.479 ms] 9.413 ms (25.7%)
iast 44.857 ms [44.469 ms, 45.246 ms] 8.17 ms (22.3%)
profiling 49.322 ms [48.82 ms, 49.824 ms] 12.635 ms (34.4%)
tracing 42.52 ms [42.171 ms, 42.869 ms] 5.833 ms (15.9%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4
    dateFormat X
    axisFormat %s
section baseline
no_agent (4.333 ms) : 4284, 4382
.   : milestone, 4333,
iast (9.279 ms) : 9119, 9439
.   : milestone, 9279,
iast_FULL (13.671 ms) : 13397, 13944
.   : milestone, 13671,
iast_GLOBAL (9.98 ms) : 9802, 10157
.   : milestone, 9980,
profiling (8.697 ms) : 8560, 8834
.   : milestone, 8697,
tracing (7.612 ms) : 7500, 7724
.   : milestone, 7612,
section candidate
no_agent (4.425 ms) : 4372, 4478
.   : milestone, 4425,
iast (9.141 ms) : 8988, 9294
.   : milestone, 9141,
iast_FULL (13.631 ms) : 13361, 13900
.   : milestone, 13631,
iast_GLOBAL (10.149 ms) : 9973, 10324
.   : milestone, 10149,
profiling (8.704 ms) : 8570, 8838
.   : milestone, 8704,
tracing (7.789 ms) : 7679, 7898
.   : milestone, 7789,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.333 ms [4.284 ms, 4.382 ms] -
iast 9.279 ms [9.119 ms, 9.439 ms] 4.946 ms (114.1%)
iast_FULL 13.671 ms [13.397 ms, 13.944 ms] 9.337 ms (215.5%)
iast_GLOBAL 9.98 ms [9.802 ms, 10.157 ms] 5.646 ms (130.3%)
profiling 8.697 ms [8.56 ms, 8.834 ms] 4.364 ms (100.7%)
tracing 7.612 ms [7.5 ms, 7.724 ms] 3.279 ms (75.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.425 ms [4.372 ms, 4.478 ms] -
iast 9.141 ms [8.988 ms, 9.294 ms] 4.716 ms (106.6%)
iast_FULL 13.631 ms [13.361 ms, 13.9 ms] 9.205 ms (208.0%)
iast_GLOBAL 10.149 ms [9.973 ms, 10.324 ms] 5.724 ms (129.3%)
profiling 8.704 ms [8.57 ms, 8.838 ms] 4.279 ms (96.7%)
tracing 7.789 ms [7.679 ms, 7.898 ms] 3.364 ms (76.0%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bdu/exclude-AbstractGeneratedStubFactory-RootStubClassLoader
git_commit_date 1750318132 1750321100
git_commit_sha 2f4c864 b42c64c
release_version 1.50.0-SNAPSHOT~2f4c864fa4 1.50.0-SNAPSHOT~b42c64c5c7
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1750323086 1750323086
ci_job_id 989590276 989590276
ci_pipeline_id 68206507 68206507
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-emldojjo-project-304-concurrent-1-3ywjfx0c 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-emldojjo-project-304-concurrent-1-3ywjfx0c 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.476 ms) : 1464, 1487
.   : milestone, 1476,
appsec (2.416 ms) : 2367, 2465
.   : milestone, 2416,
iast (2.196 ms) : 2134, 2258
.   : milestone, 2196,
iast_GLOBAL (2.24 ms) : 2178, 2303
.   : milestone, 2240,
profiling (2.034 ms) : 1984, 2084
.   : milestone, 2034,
tracing (2.01 ms) : 1962, 2058
.   : milestone, 2010,
section candidate
no_agent (1.477 ms) : 1465, 1488
.   : milestone, 1477,
appsec (2.412 ms) : 2362, 2461
.   : milestone, 2412,
iast (2.199 ms) : 2137, 2262
.   : milestone, 2199,
iast_GLOBAL (2.239 ms) : 2176, 2302
.   : milestone, 2239,
profiling (2.041 ms) : 1990, 2091
.   : milestone, 2041,
tracing (2.015 ms) : 1967, 2063
.   : milestone, 2015,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.464 ms, 1.487 ms] -
appsec 2.416 ms [2.367 ms, 2.465 ms] 940.419 µs (63.7%)
iast 2.196 ms [2.134 ms, 2.258 ms] 720.094 µs (48.8%)
iast_GLOBAL 2.24 ms [2.178 ms, 2.303 ms] 764.428 µs (51.8%)
profiling 2.034 ms [1.984 ms, 2.084 ms] 558.128 µs (37.8%)
tracing 2.01 ms [1.962 ms, 2.058 ms] 534.482 µs (36.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.477 ms [1.465 ms, 1.488 ms] -
appsec 2.412 ms [2.362 ms, 2.461 ms] 934.95 µs (63.3%)
iast 2.199 ms [2.137 ms, 2.262 ms] 722.698 µs (48.9%)
iast_GLOBAL 2.239 ms [2.176 ms, 2.302 ms] 762.302 µs (51.6%)
profiling 2.041 ms [1.99 ms, 2.091 ms] 563.841 µs (38.2%)
tracing 2.015 ms [1.967 ms, 2.063 ms] 538.252 µs (36.5%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.50.0-SNAPSHOT~b42c64c5c7, baseline=1.50.0-SNAPSHOT~2f4c864fa4
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.285 s) : 15285000, 15285000
.   : milestone, 15285000,
appsec (14.941 s) : 14941000, 14941000
.   : milestone, 14941000,
iast (18.437 s) : 18437000, 18437000
.   : milestone, 18437000,
iast_GLOBAL (18.054 s) : 18054000, 18054000
.   : milestone, 18054000,
profiling (15.146 s) : 15146000, 15146000
.   : milestone, 15146000,
tracing (14.924 s) : 14924000, 14924000
.   : milestone, 14924000,
section candidate
no_agent (15.276 s) : 15276000, 15276000
.   : milestone, 15276000,
appsec (14.746 s) : 14746000, 14746000
.   : milestone, 14746000,
iast (18.955 s) : 18955000, 18955000
.   : milestone, 18955000,
iast_GLOBAL (17.965 s) : 17965000, 17965000
.   : milestone, 17965000,
profiling (15.107 s) : 15107000, 15107000
.   : milestone, 15107000,
tracing (15.029 s) : 15029000, 15029000
.   : milestone, 15029000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.285 s [15.285 s, 15.285 s] -
appsec 14.941 s [14.941 s, 14.941 s] -344.0 ms (-2.3%)
iast 18.437 s [18.437 s, 18.437 s] 3.152 s (20.6%)
iast_GLOBAL 18.054 s [18.054 s, 18.054 s] 2.769 s (18.1%)
profiling 15.146 s [15.146 s, 15.146 s] -139.0 ms (-0.9%)
tracing 14.924 s [14.924 s, 14.924 s] -361.0 ms (-2.4%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.276 s [15.276 s, 15.276 s] -
appsec 14.746 s [14.746 s, 14.746 s] -530.0 ms (-3.5%)
iast 18.955 s [18.955 s, 18.955 s] 3.679 s (24.1%)
iast_GLOBAL 17.965 s [17.965 s, 17.965 s] 2.689 s (17.6%)
profiling 15.107 s [15.107 s, 15.107 s] -169.0 ms (-1.1%)
tracing 15.029 s [15.029 s, 15.029 s] -247.0 ms (-1.6%)

In a OSGI environment JAXB code generation creates a lot `com.ibm.xml.xlxp2.jaxb.codegen.AbstractGeneratedStubFactory$RootStubClassLoader` this classloader is used to define generated classes that must be actually defined in the correct OSGI bundle.

Given the tracer needs to instrument classloading and also perform osgi bundle lookup this interaction create a lot of load in the tracer when these generated classes are defined.

Given this classloader is used for the generated classes, it is safe to exclude skip it.
@bric3 bric3 force-pushed the bdu/exclude-AbstractGeneratedStubFactory-RootStubClassLoader branch from c9832de to b42c64c Compare June 19, 2025 08:18
@bric3 bric3 marked this pull request as ready for review June 19, 2025 10:45
@bric3 bric3 requested a review from a team as a code owner June 19, 2025 10:45
Copy link
Contributor

github-actions bot commented Jun 19, 2025

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@mcculls mcculls merged commit 6db7d82 into master Jun 20, 2025
652 of 656 checks passed
@mcculls mcculls deleted the bdu/exclude-AbstractGeneratedStubFactory-RootStubClassLoader branch June 20, 2025 08:21
@github-actions github-actions bot added this to the 1.50.0 milestone Jun 20, 2025
@PerfectSlayer PerfectSlayer added the tag: performance Performance related changes label Jun 20, 2025
svc-squareup-copybara pushed a commit to cashapp/misk that referenced this pull request Jun 20, 2025
| Package | Type | Package file | Manager | Update | Change |
|---|---|---|---|---|---|
| [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java)
| dependencies | misk/gradle/libs.versions.toml | gradle | minor |
`1.49.0` -> `1.50.0` |

---

### Release Notes

<details>
<summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary>

###
[`v1.50.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.50.0):
1.50.0

### Deprecation Notice

> \[!NOTE]
> `DD_RUNTIME_ID_ENABLED` has been deprecated and will be removed in
future releases. Please use `DD_RUNTIME_METRICS_RUNTIME_ID_ENABLED`
instead.

### Components

#### Application Security Management (WAF)

- 🐛 Add String length truncation limit to ObjectIntrospector and
update truncation metrics
([#&#8203;8825](DataDog/dd-trace-java#8825) -
[@&#8203;jandro996](https://github.com/jandro996))
- 🐛 Adapt standalone ASM to support API Security
([#&#8203;8804](DataDog/dd-trace-java#8804) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Add appsec.waf.input\_truncated metric
([#&#8203;8791](DataDog/dd-trace-java#8791) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request body collection
([#&#8203;8748](DataDog/dd-trace-java#8748) -
[@&#8203;jandro996](https://github.com/jandro996))
- ✨ Extended appsec request/response headers collection
([#&#8203;8724](DataDog/dd-trace-java#8724) -
[@&#8203;jandro996](https://github.com/jandro996))

#### Build & Tooling

- ✨ Add artifacts to public s3 bucket
([#&#8203;8947](DataDog/dd-trace-java#8947) -
[@&#8203;randomanderson](https://github.com/randomanderson))

#### Continuous Integration Visibility

- ✨ Improve PR information building
([#&#8203;8908](DataDog/dd-trace-java#8908) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Truncate span stack traces when Test Optimization is
enabled
([#&#8203;8903](DataDog/dd-trace-java#8903) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Ensure auto-detected service name is the same for every process
in the same build
([#&#8203;8902](DataDog/dd-trace-java#8902) -
[@&#8203;nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog))
- 🐛 Use tag as fallback in api requests if no branch is available
([#&#8203;8876](DataDog/dd-trace-java#8876) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add support for JUnit 5.13-RC1
([#&#8203;8865](DataDog/dd-trace-java#8865),
[#&#8203;8871](DataDog/dd-trace-java#8871) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Implement attempt to fix v3 and v4 and bump capability
version
([#&#8203;8824](DataDog/dd-trace-java#8824) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🧹 Align retry logic for all test framework instrumentations
([#&#8203;8803](DataDog/dd-trace-java#8803) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- 🐛 Always build ci workspace without trailing separator
([#&#8203;8788](DataDog/dd-trace-java#8788) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))
- ✨ Add commit discrepancies telemetry when building repository
git information
([#&#8203;8763](DataDog/dd-trace-java#8763) -
[@&#8203;daniel-mohedano](https://github.com/daniel-mohedano))

#### Data Streams Monitoring

- 💡 Surface process tags in dsm payloads and use them for base hash
calculation
([#&#8203;8836](DataDog/dd-trace-java#8836) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Dynamic Instrumentation

- ✨ Optimized allocations for collection filter functions
([#&#8203;8896](DataDog/dd-trace-java#8896) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix SymDB upload size check
([#&#8203;8887](DataDog/dd-trace-java#8887) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for Set in filter function
([#&#8203;8873](DataDog/dd-trace-java#8873) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Add support for isDefined in log template
([#&#8203;8859](DataDog/dd-trace-java#8859) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Fix Max captured frames for Exception Replay
([#&#8203;8856](DataDog/dd-trace-java#8856) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 🐛 Remove static inherited fields collection
([#&#8203;8832](DataDog/dd-trace-java#8832) -
[@&#8203;jpbempel](https://github.com/jpbempel))
- 💡 Add process tags to dynamic instrumentation intake payload
([#&#8203;8779](DataDog/dd-trace-java#8779) -
[@&#8203;amarziali](https://github.com/amarziali))

#### GraalVM native-image

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))
- ✨ Add JMXFetch support for GraalVM Native
([#&#8203;8569](DataDog/dd-trace-java#8569) -
[@&#8203;ygree](https://github.com/ygree))

#### JMX fetch

- ✨ Add support for GraalVM Native GC metrics
([#&#8203;8913](DataDog/dd-trace-java#8913) -
[@&#8203;ygree](https://github.com/ygree))

#### Library Injection

- ✨ Deny oracle db jvm based tools
([#&#8203;8909](DataDog/dd-trace-java#8909) -
[@&#8203;bric3](https://github.com/bric3))

#### OpenTracing

- 🐛 Fix OT packaging for exception replay
([#&#8203;8912](DataDog/dd-trace-java#8912) -
[@&#8203;jpbempel](https://github.com/jpbempel))

#### Profiling

- ✨ Bump ddprof to 1.27.0
([#&#8203;8893](DataDog/dd-trace-java#8893) -
[@&#8203;jbachorik](https://github.com/jbachorik))
- Properly handle the adaptive sampling interval overflow by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#213
- Fix [#&#8203;200](DataDog/dd-trace-java#200)
Crash related to aligned\_alloc and free in context by
[@&#8203;yanglong1010](https://github.com/yanglong1010) in
DataDog/java-profiler#208
- Explicitly initialize empty context page by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#210
- Re-connect crash recursion protection with VM stackwalker by
[@&#8203;jbachorik](https://github.com/jbachorik) in
DataDog/java-profiler#214
- ✨ Enable ZSTD compression for profiling
([#&#8203;8862](DataDog/dd-trace-java#8862) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 💡 Collect process tags for profiling upload requests
([#&#8203;8780](DataDog/dd-trace-java#8780) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Telemetry

- 💡 Surface process tags on telemetry payloads
([#&#8203;8837](DataDog/dd-trace-java#8837) -
[@&#8203;amarziali](https://github.com/amarziali))

#### Trace context propagation

- ✨ Migrating all HttpClient Instrumentations to Inject Full
Context
([#&#8203;8826](DataDog/dd-trace-java#8826) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Migrating all HttpServer Instrumentations to Extract full
Context
([#&#8203;8820](DataDog/dd-trace-java#8820) -
[@&#8203;mhlidd](https://github.com/mhlidd))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer core

- ✨⚡ Skip JAXB generated classes classloader
([#&#8203;9003](DataDog/dd-trace-java#9003) -
[@&#8203;bric3](https://github.com/bric3))
- ✨ Add DD\_RUNTIME\_METRICS\_RUNTIME\_ID\_ENABLED alias for
runtime id generation
([#&#8203;8981](DataDog/dd-trace-java#8981) -
[@&#8203;amarziali](https://github.com/amarziali))
- 🐛 Use resolved address for peer.hostname when available without
hitting the cache
([#&#8203;8915](DataDog/dd-trace-java#8915) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface server name process tag for tomcat
([#&#8203;8894](DataDog/dd-trace-java#8894) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡 Surface websphere cell and server name on process tags
([#&#8203;8880](DataDog/dd-trace-java#8880) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Added special lightweight pre-main class that skips
installation on incompatible JVMs.
([#&#8203;8855](DataDog/dd-trace-java#8855) -
[@&#8203;AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD))
- 💡 Add entrypoint type to process tags
([#&#8203;8839](DataDog/dd-trace-java#8839) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Extend JPS re-implementation to J9 family
([#&#8203;8813](DataDog/dd-trace-java#8813) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- ✨ Notify listeners when the scope top changes after switching
scope stacks
([#&#8203;8797](DataDog/dd-trace-java#8797) -
[@&#8203;mcculls](https://github.com/mcculls))
- ✨ Read hsperfdata for Java PIDs if jvmstat is unavailable
([#&#8203;8792](DataDog/dd-trace-java#8792) -
[@&#8203;MattAlp](https://github.com/MattAlp))
- 🐛 Turn JDK socket support on by default
([#&#8203;8752](DataDog/dd-trace-java#8752) -
[@&#8203;sarahchen6](https://github.com/sarahchen6))
- ✨ Simplify context propagation
([#&#8203;8719](DataDog/dd-trace-java#8719) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))
- ✨ Add JSON parsing support
([#&#8203;8579](DataDog/dd-trace-java#8579) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Tracer internal logging

- ✨ Fix printing format of span identifiers
([#&#8203;8897](DataDog/dd-trace-java#8897) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Tracer public API

- 💡 Track the source of installation
([#&#8203;8956](DataDog/dd-trace-java#8956) -
[@&#8203;mabdinur](https://github.com/mabdinur))
- ✨ Enforce size limit on application\_monitoring.yaml files
([#&#8203;8789](DataDog/dd-trace-java#8789) -
[@&#8203;mtoffl01](https://github.com/mtoffl01))
- ✨ Enabling baggage cache to support limits and non-ascii
characters
([#&#8203;8713](DataDog/dd-trace-java#8713) -
[@&#8203;mhlidd](https://github.com/mhlidd))

### Instrumentations

#### AWS Lambda instrumentation

- ✨ Pass Lambda Request ID to Extension
([#&#8203;8814](DataDog/dd-trace-java#8814) -
[@&#8203;nhulston](https://github.com/nhulston))

#### Core Java language instrumentation

- ✨ Ensure ClassloadingInstrumentation is always applied even
with `DD_TRACE_ENABLED=false`
([#&#8203;8863](DataDog/dd-trace-java#8863) -
[@&#8203;mcculls](https://github.com/mcculls))

#### Eclipse Vert.x instrumentation

- 🐛 Do not override route with / in vertx instrumentation
([#&#8203;8881](DataDog/dd-trace-java#8881) -
[@&#8203;vandonr](https://github.com/vandonr))

#### IBM Liberty

- 🐛 Fix error mark on http status for IBM liberty
([#&#8203;8822](DataDog/dd-trace-java#8822) -
[@&#8203;amarziali](https://github.com/amarziali))

#### JDBC instrumentation

- 🐛 Do not prepend DBM <> APM trace comment in SQLCommenter if there
is a pg plan hint
([#&#8203;8864](DataDog/dd-trace-java#8864) -
[@&#8203;edengorevoy](https://github.com/edengorevoy))

#### JMS instrumentation

- ✨ Add jms as an extra integration name where there is JMS
involved
([#&#8203;8933](DataDog/dd-trace-java#8933) -
[@&#8203;vandonr](https://github.com/vandonr))

#### Kotlin instrumentation

- ✨ Enable kotlin\_coroutine integration by default
([#&#8203;8848](DataDog/dd-trace-java#8848) -
[@&#8203;mcculls](https://github.com/mcculls))
- 🧹 Rework Kotlin coroutines instrumentation around coroutine
context
([#&#8203;8774](DataDog/dd-trace-java#8774) -
[@&#8203;mcculls](https://github.com/mcculls))

#### OpenTelemetry instrumentation

- 🐛 Support WithSpan inheritContext attribute
([#&#8203;8858](DataDog/dd-trace-java#8858) -
[@&#8203;amarziali](https://github.com/amarziali))
- ✨ Add context API support OTel propagators
([#&#8203;8770](DataDog/dd-trace-java#8770) -
[@&#8203;PerfectSlayer](https://github.com/PerfectSlayer))

#### Play Framework instrumentation

- 🐛 Fix the Play Framework's span resource name priority so that the
client JAX-RS 404 cannot override it
([#&#8203;8591](DataDog/dd-trace-java#8591) -
[@&#8203;ygree](https://github.com/ygree))

#### Quarkus Instrumentation

- 🐛 Ignore quarkus jaxrs stubs and cdi wrapper proxies
([#&#8203;8891](DataDog/dd-trace-java#8891) -
[@&#8203;amarziali](https://github.com/amarziali))

#### ServiceTalk

- ✨ Improve ServiceTalk Captured Context API Instrumentation
for v0.42.56+
([#&#8203;8821](DataDog/dd-trace-java#8821) -
[@&#8203;ygree](https://github.com/ygree))

#### Spring instrumentation

- ✨ Supporting Baggage for Instrumentations used in Weblog
Tests
([#&#8203;8773](DataDog/dd-trace-java#8773) -
[@&#8203;mhlidd](https://github.com/mhlidd))

#### WebSocket Instrumentation

- 💡 Trace websocket for spring webflux reactive handlers
([#&#8203;8831](DataDog/dd-trace-java#8831) -
[@&#8203;amarziali](https://github.com/amarziali))
- 💡:test\_tube: WebSocket support for Netty
([#&#8203;8632](DataDog/dd-trace-java#8632) -
[@&#8203;ValentinZakharov](https://github.com/ValentinZakharov))

#### Zio Instrumentation

- 🧹 Cleanup Zio fiber instrumentation to avoid repeated activation
of continuation
([#&#8203;8798](DataDog/dd-trace-java#8798) -
[@&#8203;mcculls](https://github.com/mcculls))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am
every weekday" in timezone Australia/Melbourne, Automerge - At any time
(no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://github.com/renovatebot/renovate).

GitOrigin-RevId: 9207366cdb6a1bd098082305d354a0a3c4622d7a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: core Tracer core tag: performance Performance related changes type: enhancement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants