Skip to content

Conversation

@PerfectSlayer
Copy link
Contributor

@PerfectSlayer PerfectSlayer commented Sep 18, 2025

What Does This Do

This PR adds methods that may mutate final fields to the list of ForbiddenAPIs. It also identifies current use-cases of these methods and whether or not the usage will need to be changed.

Motivation

Let's "Prepare to Make Final Mean Final". Starting in Java 26, mutating final fields will emit warnings, and in a future release, this behavior will result in exceptions.

Additional Notes

Contributor Checklist

Jira ticket: APMLP-594

@datadog-datadog-prod-us1

This comment has been minimized.

@pr-commenter
Copy link

pr-commenter bot commented Sep 18, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/jep500
git_commit_date 1769696980 1769697047
git_commit_sha b89fa0a 7fc2260
release_version 1.59.0-SNAPSHOT~b89fa0af05 1.54.0-SNAPSHOT~7fc22603a4
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769698775 1769698775
ci_job_id 1386794538 1386794538
ci_pipeline_id 93541244 93541244
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-3-ba76v1vk 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-3-ba76v1vk 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 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 64 metrics, 7 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.06 s) : 0, 1060205
Total [baseline] (10.95 s) : 0, 10950107
Agent [candidate] (1.059 s) : 0, 1058963
Total [candidate] (10.943 s) : 0, 10943157
section appsec
Agent [baseline] (1.247 s) : 0, 1246689
Total [baseline] (11.04 s) : 0, 11039786
Agent [candidate] (1.232 s) : 0, 1231519
Total [candidate] (10.935 s) : 0, 10934611
section iast
Agent [baseline] (1.233 s) : 0, 1233068
Total [baseline] (11.079 s) : 0, 11079426
Agent [candidate] (1.243 s) : 0, 1243338
Total [candidate] (11.196 s) : 0, 11195975
section profiling
Agent [baseline] (1.195 s) : 0, 1195112
Total [baseline] (11.01 s) : 0, 11010248
Agent [candidate] (1.185 s) : 0, 1184904
Total [candidate] (10.904 s) : 0, 10903568
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.06 s -
Agent appsec 1.247 s 186.484 ms (17.6%)
Agent iast 1.233 s 172.863 ms (16.3%)
Agent profiling 1.195 s 134.907 ms (12.7%)
Total tracing 10.95 s -
Total appsec 11.04 s 89.679 ms (0.8%)
Total iast 11.079 s 129.319 ms (1.2%)
Total profiling 11.01 s 60.141 ms (0.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.059 s -
Agent appsec 1.232 s 172.556 ms (16.3%)
Agent iast 1.243 s 184.375 ms (17.4%)
Agent profiling 1.185 s 125.941 ms (11.9%)
Total tracing 10.943 s -
Total appsec 10.935 s -8.546 ms (-0.1%)
Total iast 11.196 s 252.818 ms (2.3%)
Total profiling 10.904 s -39.589 ms (-0.4%)
gantt
    title petclinic - break down per module: candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.19 ms) : 0, 1190
crashtracking [candidate] (1.18 ms) : 0, 1180
BytebuddyAgent [baseline] (625.985 ms) : 0, 625985
BytebuddyAgent [candidate] (623.184 ms) : 0, 623184
AgentMeter [baseline] (28.718 ms) : 0, 28718
AgentMeter [candidate] (28.818 ms) : 0, 28818
GlobalTracer [baseline] (257.272 ms) : 0, 257272
GlobalTracer [candidate] (257.222 ms) : 0, 257222
AppSec [baseline] (33.003 ms) : 0, 33003
AppSec [candidate] (32.883 ms) : 0, 32883
Debugger [baseline] (61.961 ms) : 0, 61961
Debugger [candidate] (61.361 ms) : 0, 61361
Remote Config [baseline] (616.703 µs) : 0, 617
Remote Config [candidate] (634.66 µs) : 0, 635
Telemetry [baseline] (8.994 ms) : 0, 8994
Telemetry [candidate] (9.946 ms) : 0, 9946
Flare Poller [baseline] (6.831 ms) : 0, 6831
Flare Poller [candidate] (8.383 ms) : 0, 8383
section appsec
crashtracking [baseline] (1.197 ms) : 0, 1197
crashtracking [candidate] (1.177 ms) : 0, 1177
BytebuddyAgent [baseline] (660.897 ms) : 0, 660897
BytebuddyAgent [candidate] (652.503 ms) : 0, 652503
AgentMeter [baseline] (12.009 ms) : 0, 12009
AgentMeter [candidate] (11.841 ms) : 0, 11841
GlobalTracer [baseline] (260.241 ms) : 0, 260241
GlobalTracer [candidate] (257.15 ms) : 0, 257150
AppSec [baseline] (168.409 ms) : 0, 168409
AppSec [candidate] (166.862 ms) : 0, 166862
Debugger [baseline] (68.592 ms) : 0, 68592
Debugger [candidate] (67.812 ms) : 0, 67812
Remote Config [baseline] (687.195 µs) : 0, 687
Remote Config [candidate] (658.967 µs) : 0, 659
Telemetry [baseline] (9.518 ms) : 0, 9518
Telemetry [candidate] (9.215 ms) : 0, 9215
Flare Poller [baseline] (3.728 ms) : 0, 3728
Flare Poller [candidate] (3.607 ms) : 0, 3607
IAST [baseline] (25.817 ms) : 0, 25817
IAST [candidate] (25.445 ms) : 0, 25445
section iast
crashtracking [baseline] (1.188 ms) : 0, 1188
crashtracking [candidate] (1.195 ms) : 0, 1195
BytebuddyAgent [baseline] (795.485 ms) : 0, 795485
BytebuddyAgent [candidate] (802.171 ms) : 0, 802171
AgentMeter [baseline] (11.224 ms) : 0, 11224
AgentMeter [candidate] (11.473 ms) : 0, 11473
GlobalTracer [baseline] (248.645 ms) : 0, 248645
GlobalTracer [candidate] (250.661 ms) : 0, 250661
AppSec [baseline] (32.138 ms) : 0, 32138
AppSec [candidate] (33.243 ms) : 0, 33243
Debugger [baseline] (68.951 ms) : 0, 68951
Debugger [candidate] (68.788 ms) : 0, 68788
Remote Config [baseline] (545.622 µs) : 0, 546
Remote Config [candidate] (559.681 µs) : 0, 560
Telemetry [baseline] (8.616 ms) : 0, 8616
Telemetry [candidate] (8.588 ms) : 0, 8588
Flare Poller [baseline] (3.526 ms) : 0, 3526
Flare Poller [candidate] (3.544 ms) : 0, 3544
IAST [baseline] (27.2 ms) : 0, 27200
IAST [candidate] (27.456 ms) : 0, 27456
section profiling
ProfilingAgent [baseline] (99.34 ms) : 0, 99340
ProfilingAgent [candidate] (98.396 ms) : 0, 98396
crashtracking [baseline] (1.228 ms) : 0, 1228
crashtracking [candidate] (1.208 ms) : 0, 1208
BytebuddyAgent [baseline] (683.369 ms) : 0, 683369
BytebuddyAgent [candidate] (676.891 ms) : 0, 676891
AgentMeter [baseline] (8.704 ms) : 0, 8704
AgentMeter [candidate] (8.649 ms) : 0, 8649
GlobalTracer [baseline] (218.154 ms) : 0, 218154
GlobalTracer [candidate] (216.879 ms) : 0, 216879
AppSec [baseline] (32.619 ms) : 0, 32619
AppSec [candidate] (32.323 ms) : 0, 32323
Debugger [baseline] (67.933 ms) : 0, 67933
Debugger [candidate] (67.645 ms) : 0, 67645
Remote Config [baseline] (592.312 µs) : 0, 592
Remote Config [candidate] (583.118 µs) : 0, 583
Telemetry [baseline] (8.835 ms) : 0, 8835
Telemetry [candidate] (8.737 ms) : 0, 8737
Flare Poller [baseline] (3.765 ms) : 0, 3765
Flare Poller [candidate] (3.762 ms) : 0, 3762
Profiling [baseline] (99.949 ms) : 0, 99949
Profiling [candidate] (98.97 ms) : 0, 98970
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.057 s) : 0, 1056957
Total [baseline] (8.698 s) : 0, 8698332
Agent [candidate] (1.062 s) : 0, 1062158
Total [candidate] (8.742 s) : 0, 8742391
section iast
Agent [baseline] (1.231 s) : 0, 1230729
Total [baseline] (9.388 s) : 0, 9388283
Agent [candidate] (1.226 s) : 0, 1226061
Total [candidate] (9.327 s) : 0, 9326780
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.057 s -
Agent iast 1.231 s 173.772 ms (16.4%)
Total tracing 8.698 s -
Total iast 9.388 s 689.95 ms (7.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.062 s -
Agent iast 1.226 s 163.903 ms (15.4%)
Total tracing 8.742 s -
Total iast 9.327 s 584.389 ms (6.7%)
gantt
    title insecure-bank - break down per module: candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.177 ms) : 0, 1177
crashtracking [candidate] (1.174 ms) : 0, 1174
BytebuddyAgent [baseline] (623.038 ms) : 0, 623038
BytebuddyAgent [candidate] (625.853 ms) : 0, 625853
AgentMeter [baseline] (28.781 ms) : 0, 28781
AgentMeter [candidate] (28.921 ms) : 0, 28921
GlobalTracer [baseline] (256.994 ms) : 0, 256994
GlobalTracer [candidate] (258.536 ms) : 0, 258536
AppSec [baseline] (32.754 ms) : 0, 32754
AppSec [candidate] (33.091 ms) : 0, 33091
Debugger [baseline] (62.384 ms) : 0, 62384
Debugger [candidate] (59.992 ms) : 0, 59992
Remote Config [baseline] (623.329 µs) : 0, 623
Remote Config [candidate] (629.148 µs) : 0, 629
Telemetry [baseline] (9.838 ms) : 0, 9838
Telemetry [candidate] (9.879 ms) : 0, 9879
Flare Poller [baseline] (6.055 ms) : 0, 6055
Flare Poller [candidate] (8.577 ms) : 0, 8577
section iast
crashtracking [baseline] (1.182 ms) : 0, 1182
crashtracking [candidate] (1.177 ms) : 0, 1177
BytebuddyAgent [baseline] (795.652 ms) : 0, 795652
BytebuddyAgent [candidate] (791.246 ms) : 0, 791246
AgentMeter [baseline] (11.226 ms) : 0, 11226
AgentMeter [candidate] (11.17 ms) : 0, 11170
GlobalTracer [baseline] (248.251 ms) : 0, 248251
GlobalTracer [candidate] (247.989 ms) : 0, 247989
IAST [baseline] (26.664 ms) : 0, 26664
IAST [candidate] (26.992 ms) : 0, 26992
AppSec [baseline] (32.772 ms) : 0, 32772
AppSec [candidate] (34.712 ms) : 0, 34712
Debugger [baseline] (66.748 ms) : 0, 66748
Debugger [candidate] (64.77 ms) : 0, 64770
Remote Config [baseline] (555.72 µs) : 0, 556
Remote Config [candidate] (542.82 µs) : 0, 543
Telemetry [baseline] (8.662 ms) : 0, 8662
Telemetry [candidate] (8.641 ms) : 0, 8641
Flare Poller [baseline] (3.544 ms) : 0, 3544
Flare Poller [candidate] (3.487 ms) : 0, 3487
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/jep500
git_commit_date 1769696980 1769697047
git_commit_sha b89fa0a 7fc2260
release_version 1.59.0-SNAPSHOT~b89fa0af05 1.54.0-SNAPSHOT~7fc22603a4
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1769699328 1769699328
ci_job_id 1386794541 1386794541
ci_pipeline_id 93541244 93541244
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-5d21w3jo 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-5d21w3jo 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 1 performance improvements and 2 performance regressions! Performance is the same for 16 metrics, 17 unstable metrics.

scenario Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p95 Δ mean throughput candidate mean agg_http_req_duration_p50 candidate mean agg_http_req_duration_p95 candidate mean throughput baseline mean agg_http_req_duration_p50 baseline mean agg_http_req_duration_p95 baseline mean throughput
scenario:load:insecure-bank:profiling:high_load better
[-183.125µs; -45.270µs] or [-10.588%; -2.617%]
unstable
[-1070.099µs; -198.894µs] or [-21.036%; -3.910%]
unstable
[-50.531op/s; +498.656op/s] or [-2.422%; +23.898%]
1.615ms 4.453ms 2310.656op/s 1.730ms 5.087ms 2086.594op/s
scenario:load:petclinic:tracing:high_load worse
[+1.075ms; +2.101ms] or [+6.276%; +12.259%]
worse
[+1.638ms; +3.227ms] or [+5.839%; +11.504%]
unstable
[-46.459op/s; +7.897op/s] or [-17.495%; +2.974%]
18.725ms 30.486ms 246.281op/s 17.137ms 28.054ms 265.562op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.26 ms) : 1247, 1273
.   : milestone, 1260,
iast (3.3 ms) : 3256, 3343
.   : milestone, 3300,
iast_FULL (5.869 ms) : 5810, 5928
.   : milestone, 5869,
iast_GLOBAL (3.665 ms) : 3595, 3735
.   : milestone, 3665,
profiling (2.168 ms) : 2147, 2190
.   : milestone, 2168,
tracing (1.808 ms) : 1793, 1824
.   : milestone, 1808,
section candidate
no_agent (1.208 ms) : 1197, 1219
.   : milestone, 1208,
iast (3.218 ms) : 3174, 3262
.   : milestone, 3218,
iast_FULL (5.865 ms) : 5807, 5923
.   : milestone, 5865,
iast_GLOBAL (3.612 ms) : 3562, 3661
.   : milestone, 3612,
profiling (1.951 ms) : 1936, 1967
.   : milestone, 1951,
tracing (1.845 ms) : 1829, 1861
.   : milestone, 1845,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.26 ms [1.247 ms, 1.273 ms] -
iast 3.3 ms [3.256 ms, 3.343 ms] 2.04 ms (161.9%)
iast_FULL 5.869 ms [5.81 ms, 5.928 ms] 4.609 ms (365.8%)
iast_GLOBAL 3.665 ms [3.595 ms, 3.735 ms] 2.405 ms (190.8%)
profiling 2.168 ms [2.147 ms, 2.19 ms] 908.333 µs (72.1%)
tracing 1.808 ms [1.793 ms, 1.824 ms] 548.412 µs (43.5%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.208 ms [1.197 ms, 1.219 ms] -
iast 3.218 ms [3.174 ms, 3.262 ms] 2.01 ms (166.4%)
iast_FULL 5.865 ms [5.807 ms, 5.923 ms] 4.657 ms (385.5%)
iast_GLOBAL 3.612 ms [3.562 ms, 3.661 ms] 2.404 ms (199.0%)
profiling 1.951 ms [1.936 ms, 1.967 ms] 743.402 µs (61.5%)
tracing 1.845 ms [1.829 ms, 1.861 ms] 636.764 µs (52.7%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05
    dateFormat X
    axisFormat %s
section baseline
no_agent (18.113 ms) : 17930, 18295
.   : milestone, 18113,
appsec (18.738 ms) : 18543, 18933
.   : milestone, 18738,
code_origins (17.871 ms) : 17693, 18048
.   : milestone, 17871,
iast (17.698 ms) : 17518, 17879
.   : milestone, 17698,
profiling (18.795 ms) : 18607, 18983
.   : milestone, 18795,
tracing (17.571 ms) : 17400, 17742
.   : milestone, 17571,
section candidate
no_agent (17.863 ms) : 17682, 18044
.   : milestone, 17863,
appsec (18.258 ms) : 18076, 18440
.   : milestone, 18258,
code_origins (18.056 ms) : 17875, 18237
.   : milestone, 18056,
iast (17.448 ms) : 17274, 17622
.   : milestone, 17448,
profiling (18.737 ms) : 18550, 18924
.   : milestone, 18737,
tracing (18.955 ms) : 18759, 19151
.   : milestone, 18955,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.113 ms [17.93 ms, 18.295 ms] -
appsec 18.738 ms [18.543 ms, 18.933 ms] 625.696 µs (3.5%)
code_origins 17.871 ms [17.693 ms, 18.048 ms] -241.96 µs (-1.3%)
iast 17.698 ms [17.518 ms, 17.879 ms] -414.047 µs (-2.3%)
profiling 18.795 ms [18.607 ms, 18.983 ms] 682.452 µs (3.8%)
tracing 17.571 ms [17.4 ms, 17.742 ms] -541.448 µs (-3.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.863 ms [17.682 ms, 18.044 ms] -
appsec 18.258 ms [18.076 ms, 18.44 ms] 394.94 µs (2.2%)
code_origins 18.056 ms [17.875 ms, 18.237 ms] 193.24 µs (1.1%)
iast 17.448 ms [17.274 ms, 17.622 ms] -414.639 µs (-2.3%)
profiling 18.737 ms [18.55 ms, 18.924 ms] 874.285 µs (4.9%)
tracing 18.955 ms [18.759 ms, 19.151 ms] 1.092 ms (6.1%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master bbujon/jep500
git_commit_date 1769696980 1769697047
git_commit_sha b89fa0a 7fc2260
release_version 1.59.0-SNAPSHOT~b89fa0af05 1.54.0-SNAPSHOT~7fc22603a4
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1769699034 1769699034
ci_job_id 1386794543 1386794543
ci_pipeline_id 93541244 93541244
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-4-ie8x066e 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-4-ie8x066e 6.8.0-1031-aws #33~22.04.1-Ubuntu SMP Thu Jun 26 14:22:30 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

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

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.475 ms) : 1464, 1487
.   : milestone, 1475,
appsec (3.72 ms) : 3498, 3943
.   : milestone, 3720,
iast (2.248 ms) : 2180, 2316
.   : milestone, 2248,
iast_GLOBAL (2.288 ms) : 2218, 2357
.   : milestone, 2288,
profiling (2.096 ms) : 2040, 2152
.   : milestone, 2096,
tracing (2.053 ms) : 2000, 2106
.   : milestone, 2053,
section candidate
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (3.748 ms) : 3522, 3974
.   : milestone, 3748,
iast (2.24 ms) : 2172, 2308
.   : milestone, 2240,
iast_GLOBAL (2.293 ms) : 2225, 2362
.   : milestone, 2293,
profiling (2.082 ms) : 2028, 2137
.   : milestone, 2082,
tracing (2.073 ms) : 2019, 2126
.   : milestone, 2073,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.464 ms, 1.487 ms] -
appsec 3.72 ms [3.498 ms, 3.943 ms] 2.245 ms (152.2%)
iast 2.248 ms [2.18 ms, 2.316 ms] 772.646 µs (52.4%)
iast_GLOBAL 2.288 ms [2.218 ms, 2.357 ms] 812.293 µs (55.1%)
profiling 2.096 ms [2.04 ms, 2.152 ms] 620.461 µs (42.1%)
tracing 2.053 ms [2.0 ms, 2.106 ms] 577.753 µs (39.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 3.748 ms [3.522 ms, 3.974 ms] 2.277 ms (154.7%)
iast 2.24 ms [2.172 ms, 2.308 ms] 768.11 µs (52.2%)
iast_GLOBAL 2.293 ms [2.225 ms, 2.362 ms] 821.621 µs (55.8%)
profiling 2.082 ms [2.028 ms, 2.137 ms] 610.447 µs (41.5%)
tracing 2.073 ms [2.019 ms, 2.126 ms] 600.854 µs (40.8%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~7fc22603a4, baseline=1.59.0-SNAPSHOT~b89fa0af05
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.995 s) : 14995000, 14995000
.   : milestone, 14995000,
appsec (15.143 s) : 15143000, 15143000
.   : milestone, 15143000,
iast (18.311 s) : 18311000, 18311000
.   : milestone, 18311000,
iast_GLOBAL (18.155 s) : 18155000, 18155000
.   : milestone, 18155000,
profiling (15.118 s) : 15118000, 15118000
.   : milestone, 15118000,
tracing (14.681 s) : 14681000, 14681000
.   : milestone, 14681000,
section candidate
no_agent (14.682 s) : 14682000, 14682000
.   : milestone, 14682000,
appsec (15.042 s) : 15042000, 15042000
.   : milestone, 15042000,
iast (18.037 s) : 18037000, 18037000
.   : milestone, 18037000,
iast_GLOBAL (17.669 s) : 17669000, 17669000
.   : milestone, 17669000,
profiling (14.932 s) : 14932000, 14932000
.   : milestone, 14932000,
tracing (14.541 s) : 14541000, 14541000
.   : milestone, 14541000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.995 s [14.995 s, 14.995 s] -
appsec 15.143 s [15.143 s, 15.143 s] 148.0 ms (1.0%)
iast 18.311 s [18.311 s, 18.311 s] 3.316 s (22.1%)
iast_GLOBAL 18.155 s [18.155 s, 18.155 s] 3.16 s (21.1%)
profiling 15.118 s [15.118 s, 15.118 s] 123.0 ms (0.8%)
tracing 14.681 s [14.681 s, 14.681 s] -314.0 ms (-2.1%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.682 s [14.682 s, 14.682 s] -
appsec 15.042 s [15.042 s, 15.042 s] 360.0 ms (2.5%)
iast 18.037 s [18.037 s, 18.037 s] 3.355 s (22.9%)
iast_GLOBAL 17.669 s [17.669 s, 17.669 s] 2.987 s (20.3%)
profiling 14.932 s [14.932 s, 14.932 s] 250.0 ms (1.7%)
tracing 14.541 s [14.541 s, 14.541 s] -141.0 ms (-1.0%)

@PerfectSlayer PerfectSlayer added the tag: no release notes Changes to exclude from release notes label Sep 18, 2025
@PerfectSlayer PerfectSlayer marked this pull request as ready for review September 18, 2025 14:57
@PerfectSlayer PerfectSlayer requested review from a team as code owners September 18, 2025 14:57
@nikita-tkachenko-datadog
Copy link
Contributor

Will we be forbidding setAccessible(...) calls as well? (such as the one done in datadog.trace.util.MethodHandles#privateFieldSetter(java.lang.Class<?>, java.lang.String))

@PerfectSlayer
Copy link
Contributor Author

We won't. Quick quote from my doc about the topic:

But the following will still working:

  • java.lang.reflect.AccessibleObject#setAccessible(boolean) will work to change the accessibility flag and Field.get() / unreflect() / unreflectGetter() will still allow access to private fields value and method calls.

@PerfectSlayer PerfectSlayer marked this pull request as draft September 19, 2025 09:37
@PerfectSlayer
Copy link
Contributor Author

Going back to draft to carefully evaluate and document each calls.
I also envisioned some fixes for some of the calls already.

@github-actions
Copy link
Contributor

github-actions bot commented Jan 1, 2026

This pull request has been marked as stale because it has not had activity over the past quarter. It will be closed in 7 days if no further activity occurs. Feel free to reopen the PR if you are still working on it.

@github-actions github-actions bot added the tag: stale Stale pull requests label Jan 1, 2026
@PerfectSlayer
Copy link
Contributor Author

Let see if it makes the Q1 planning

@PerfectSlayer PerfectSlayer removed the tag: stale Stale pull requests label Jan 5, 2026
@pr-commenter
Copy link

pr-commenter bot commented Jan 21, 2026

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1769697576 1769697922
end_time 2026-01-29T14:40:56 2026-01-29T14:46:42
git_branch master bbujon/jep500
git_commit_sha b89fa0a 7fc2260
start_time 2026-01-29T14:39:37 2026-01-29T14:45:23
See matching parameters
Baseline Candidate
ci_job_id 1386794557 1386794557
ci_pipeline_id 93541244 93541244
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1769697047 1769697047

Summary

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

See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-35.929µs; +17.299µs] or [-12.860%; +6.192%]
unstable
[-52.021µs; +25.249µs] or [-16.163%; +7.845%]
unstable
[-66.558µs; +35.255µs] or [-19.713%; +10.442%]
unstable
[-34.099µs; +179.084µs] or [-3.588%; +18.842%]
same
scenario:basic same same same unstable
[+67.555µs; +254.415µs] or [+9.626%; +36.252%]
unstable
[-104.524op/s; +246.772op/s] or [-3.972%; +9.377%]
scenario:loop unsure
[-9.206µs; -2.984µs] or [-0.104%; -0.034%]
same same same same
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (321.85 µs) : 276, 368
.   : milestone, 322,
basic (276.502 µs) : 271, 282
.   : milestone, 277,
loop (8.96 ms) : 8955, 8964
.   : milestone, 8960,
section candidate
noprobe (308.465 µs) : 284, 333
.   : milestone, 308,
basic (276.327 µs) : 270, 283
.   : milestone, 276,
loop (8.963 ms) : 8959, 8968
.   : milestone, 8963,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 321.85 µs [275.817 µs, 367.883 µs]
basic 276.502 µs [270.559 µs, 282.444 µs]
loop 8.96 ms [8.955 ms, 8.964 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 308.465 µs [284.214 µs, 332.715 µs]
basic 276.327 µs [269.506 µs, 283.149 µs]
loop 8.963 ms [8.959 ms, 8.968 ms]

@sarahchen6 sarahchen6 marked this pull request as ready for review January 22, 2026 21:26
@sarahchen6 sarahchen6 requested a review from a team as a code owner January 22, 2026 21:26
@sarahchen6 sarahchen6 requested review from tylfin and removed request for a team January 22, 2026 21:26
@tylfin tylfin requested a review from jpbempel January 22, 2026 21:50
@sarahchen6 sarahchen6 requested a review from bric3 January 26, 2026 19:22
return listener;
}

// TODO: JEP 500 - avoid mutating final fields
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Is it possible to log such usage ?

Copy link
Contributor

@sarahchen6 sarahchen6 Jan 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hm good idea. I've already started trying to get rid of mutations as a whole (#10440), but we could log when final fields are detected in the meantime.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me know if there's a cleaner way to approach the logging 😅 . Otherwise, the next steps after this PR are to rework the three cases of final field mutation

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to log such usage ?

I would not add log about it as it should not impact customers.
This PR should only be a first step to mark the usages to get rid of, and warn contributors about the future limitation. The follow PRs of this task is to get rid of all those calls.
If you want logging about it, just use the JVM flag for 😉

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh yeah I meant a log for us during build.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There will be from the forbidden api plugin.
You would have to either acknowledge the limitation with a suppress annotation, or to not use the API.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I know, by default, when the API is supposed to be forbidden the build fails unless the enclosing structure is annotated by @SuppressWarning.

I was looking to see if it's possible to alter the default behavior so we're aware while the transition is made.

@sarahchen6 sarahchen6 merged commit 02cc483 into master Jan 29, 2026
550 checks passed
@sarahchen6 sarahchen6 deleted the bbujon/jep500 branch January 29, 2026 16:34
@github-actions github-actions bot added this to the 1.59.0 milestone Jan 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tag: no release notes Changes to exclude from release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants