Skip to content

Conversation

@mcculls
Copy link
Contributor

@mcculls mcculls commented Nov 22, 2025

What Does This Do

Avoids repeated calls to Class.getMethod(...) when setting up code-origins.

Motivation

We don't need the full Method reflection data; only the declaring type, method name, and method descriptor. Changing the @Advice.Origin byte-buddy annotation to provide them as separate strings means byte-buddy can store them as constants.

Before this PR, the bytecode inserted by EntrySpanOriginAdvice looked like:

      stack=7, locals=3, args_size=2
         0: invokestatic  #223                // Method datadog/trace/bootstrap/debugger/DebuggerContext.marker:()V
         3: ldc           #10                 // class org/springframework/samples/petclinic/owner/OwnerController
         5: ldc           #246                // String showOwner
         7: iconst_1
         8: anewarray     #226                // class java/lang/Class
        11: dup
        12: iconst_0
        13: getstatic     #231                // Field java/lang/Integer.TYPE:Ljava/lang/Class;
        16: aastore
        17: invokevirtual #236                // Method java/lang/Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
        20: iconst_1
        21: invokestatic  #240                // Method datadog/trace/bootstrap/debugger/DebuggerContext.captureCodeOrigin:(Ljava/lang/reflect/Method;Z)V

After this PR it looks like:

      stack=4, locals=3, args_size=2
         0: invokestatic  #223                // Method datadog/trace/bootstrap/debugger/DebuggerContext.marker:()V
         3: ldc           #225                // String org.springframework.samples.petclinic.owner.OwnerController
         5: ldc           #242                // String showOwner
         7: ldc           #243                // String (I)Lorg/springframework/web/servlet/ModelAndView;
         9: iconst_1
        10: invokestatic  #231                // Method datadog/trace/bootstrap/debugger/DebuggerContext.captureCodeOrigin:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V

The Java 8 JDK also appears to have an intermittent class redefinition bug which is triggered by these repeated calls to getMethod. Transforming a class that's in the middle of calling Class.getMethod(...) seems in rare situations on Java 8 to either cause that getMethod call to throw NegativeArraySizeException or lead to a native error as reported in #10017

Note that this link has not been confirmed because we have not been able to recreate the error locally in order to verify this fix. However, given the current data simplifying the code-origin setup advice should also help with the reported issue.

Contributor Checklist

Jira ticket: DEBUG-4768

@mcculls mcculls added type: bug Bug report and fix comp: debugger Dynamic Instrumentation labels Nov 22, 2025
@mcculls mcculls force-pushed the mcculls/code-origin-avoid-expensive-getmethod-call branch from e0ee350 to e27ee58 Compare November 22, 2025 15:32
@pr-commenter
Copy link

pr-commenter bot commented Nov 22, 2025

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1763847711 1763848046
end_time 2025-11-22T21:43:12 2025-11-22T21:48:48
git_branch master mcculls/code-origin-avoid-expensive-getmethod-call
git_commit_sha cedc49c 5612b44
start_time 2025-11-22T21:41:51 2025-11-22T21:47:27
See matching parameters
Baseline Candidate
ci_job_id 1252429472 1252429472
ci_pipeline_id 83721563 83721563
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1763846953 1763846953

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
[-87.237µs; +36.447µs] or [-28.127%; +11.751%]
unstable
[-155.800µs; +60.820µs] or [-41.763%; +16.303%]
unstable
[-340.053µs; +120.938µs] or [-75.682%; +26.916%]
unstable
[-773.144µs; +373.862µs] or [-64.004%; +30.950%]
same
scenario:basic same unsure
[-20.482µs; -0.168µs] or [-6.820%; -0.056%]
unsure
[-22.368µs; -0.301µs] or [-7.174%; -0.097%]
unstable
[-82.874µs; +90.595µs] or [-10.181%; +11.130%]
unstable
[-117.265op/s; +245.471op/s] or [-4.691%; +9.819%]
scenario:loop same 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 (373.058 µs) : 231, 515
.   : milestone, 373,
basic (300.345 µs) : 289, 312
.   : milestone, 300,
loop (8.455 ms) : 8393, 8517
.   : milestone, 8455,
section candidate
noprobe (325.568 µs) : 292, 359
.   : milestone, 326,
basic (290.02 µs) : 282, 298
.   : milestone, 290,
loop (8.439 ms) : 8377, 8501
.   : milestone, 8439,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 373.058 µs [231.229 µs, 514.886 µs]
basic 300.345 µs [288.532 µs, 312.158 µs]
loop 8.455 ms [8.393 ms, 8.517 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 325.568 µs [291.885 µs, 359.251 µs]
basic 290.02 µs [282.435 µs, 297.606 µs]
loop 8.439 ms [8.377 ms, 8.501 ms]

@pr-commenter
Copy link

pr-commenter bot commented Nov 22, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/code-origin-avoid-expensive-getmethod-call
git_commit_date 1763820197 1763846953
git_commit_sha cedc49c 5612b44
release_version 1.57.0-SNAPSHOT~cedc49cb46 1.57.0-SNAPSHOT~5612b44f2f
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1763848763 1763848763
ci_job_id 1252429465 1252429465
ci_pipeline_id 83721563 83721563
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-0-o3md5qcf 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-0-o3md5qcf 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 58 metrics, 7 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.102 s) : 0, 1102466
Total [baseline] (10.836 s) : 0, 10836121
Agent [candidate] (1.112 s) : 0, 1111864
Total [candidate] (10.958 s) : 0, 10957634
section appsec
Agent [baseline] (1.287 s) : 0, 1286728
Total [baseline] (11.145 s) : 0, 11144551
Agent [candidate] (1.289 s) : 0, 1289237
Total [candidate] (11.241 s) : 0, 11241364
section iast
Agent [baseline] (1.244 s) : 0, 1243870
Total [baseline] (11.325 s) : 0, 11324922
Agent [candidate] (1.251 s) : 0, 1250876
Total [candidate] (11.343 s) : 0, 11342987
section profiling
Agent [baseline] (1.252 s) : 0, 1252445
Total [baseline] (11.205 s) : 0, 11205434
Agent [candidate] (1.236 s) : 0, 1236418
Total [candidate] (11.275 s) : 0, 11275467
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.102 s -
Agent appsec 1.287 s 184.262 ms (16.7%)
Agent iast 1.244 s 141.404 ms (12.8%)
Agent profiling 1.252 s 149.979 ms (13.6%)
Total tracing 10.836 s -
Total appsec 11.145 s 308.43 ms (2.8%)
Total iast 11.325 s 488.801 ms (4.5%)
Total profiling 11.205 s 369.313 ms (3.4%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.112 s -
Agent appsec 1.289 s 177.373 ms (16.0%)
Agent iast 1.251 s 139.012 ms (12.5%)
Agent profiling 1.236 s 124.554 ms (11.2%)
Total tracing 10.958 s -
Total appsec 11.241 s 283.73 ms (2.6%)
Total iast 11.343 s 385.352 ms (3.5%)
Total profiling 11.275 s 317.832 ms (2.9%)
gantt
    title petclinic - break down per module: candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.496 ms) : 0, 1496
crashtracking [candidate] (1.508 ms) : 0, 1508
BytebuddyAgent [baseline] (708.494 ms) : 0, 708494
BytebuddyAgent [candidate] (714.273 ms) : 0, 714273
GlobalTracer [baseline] (249.215 ms) : 0, 249215
GlobalTracer [candidate] (251.264 ms) : 0, 251264
AppSec [baseline] (31.871 ms) : 0, 31871
AppSec [candidate] (32.354 ms) : 0, 32354
Debugger [baseline] (63.923 ms) : 0, 63923
Debugger [candidate] (64.534 ms) : 0, 64534
Remote Config [baseline] (633.473 µs) : 0, 633
Remote Config [candidate] (648.985 µs) : 0, 649
Telemetry [baseline] (8.329 ms) : 0, 8329
Telemetry [candidate] (8.398 ms) : 0, 8398
Flare Poller [baseline] (3.762 ms) : 0, 3762
Flare Poller [candidate] (3.817 ms) : 0, 3817
section appsec
crashtracking [baseline] (1.481 ms) : 0, 1481
crashtracking [candidate] (1.485 ms) : 0, 1485
BytebuddyAgent [baseline] (734.197 ms) : 0, 734197
BytebuddyAgent [candidate] (734.939 ms) : 0, 734939
GlobalTracer [baseline] (241.796 ms) : 0, 241796
GlobalTracer [candidate] (242.227 ms) : 0, 242227
AppSec [baseline] (174.676 ms) : 0, 174676
AppSec [candidate] (175.506 ms) : 0, 175506
Debugger [baseline] (61.844 ms) : 0, 61844
Debugger [candidate] (62.413 ms) : 0, 62413
Remote Config [baseline] (681.383 µs) : 0, 681
Remote Config [candidate] (675.759 µs) : 0, 676
Telemetry [baseline] (8.372 ms) : 0, 8372
Telemetry [candidate] (8.387 ms) : 0, 8387
Flare Poller [baseline] (4.018 ms) : 0, 4018
Flare Poller [candidate] (3.958 ms) : 0, 3958
IAST [baseline] (24.805 ms) : 0, 24805
IAST [candidate] (24.745 ms) : 0, 24745
section iast
crashtracking [baseline] (1.489 ms) : 0, 1489
crashtracking [candidate] (1.493 ms) : 0, 1493
BytebuddyAgent [baseline] (834.742 ms) : 0, 834742
BytebuddyAgent [candidate] (840.303 ms) : 0, 840303
GlobalTracer [baseline] (238.771 ms) : 0, 238771
GlobalTracer [candidate] (239.459 ms) : 0, 239459
AppSec [baseline] (33.039 ms) : 0, 33039
AppSec [candidate] (32.346 ms) : 0, 32346
Debugger [baseline] (60.994 ms) : 0, 60994
Debugger [candidate] (61.029 ms) : 0, 61029
Remote Config [baseline] (556.118 µs) : 0, 556
Remote Config [candidate] (551.428 µs) : 0, 551
Telemetry [baseline] (7.651 ms) : 0, 7651
Telemetry [candidate] (7.687 ms) : 0, 7687
Flare Poller [baseline] (3.507 ms) : 0, 3507
Flare Poller [candidate] (3.563 ms) : 0, 3563
IAST [baseline] (28.292 ms) : 0, 28292
IAST [candidate] (29.461 ms) : 0, 29461
section profiling
crashtracking [baseline] (1.477 ms) : 0, 1477
crashtracking [candidate] (1.438 ms) : 0, 1438
BytebuddyAgent [baseline] (747.418 ms) : 0, 747418
BytebuddyAgent [candidate] (737.731 ms) : 0, 737731
GlobalTracer [baseline] (225.947 ms) : 0, 225947
GlobalTracer [candidate] (222.748 ms) : 0, 222748
AppSec [baseline] (32.888 ms) : 0, 32888
AppSec [candidate] (32.16 ms) : 0, 32160
Debugger [baseline] (64.545 ms) : 0, 64545
Debugger [candidate] (63.228 ms) : 0, 63228
Remote Config [baseline] (682.027 µs) : 0, 682
Remote Config [candidate] (670.768 µs) : 0, 671
Telemetry [baseline] (8.225 ms) : 0, 8225
Telemetry [candidate] (8.042 ms) : 0, 8042
Flare Poller [baseline] (3.883 ms) : 0, 3883
Flare Poller [candidate] (3.797 ms) : 0, 3797
ProfilingAgent [baseline] (97.295 ms) : 0, 97295
ProfilingAgent [candidate] (97.41 ms) : 0, 97410
Profiling [baseline] (97.888 ms) : 0, 97888
Profiling [candidate] (97.991 ms) : 0, 97991
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.1 s) : 0, 1100091
Total [baseline] (8.874 s) : 0, 8873892
Agent [candidate] (1.106 s) : 0, 1105521
Total [candidate] (8.908 s) : 0, 8907685
section iast
Agent [baseline] (1.248 s) : 0, 1247621
Total [baseline] (9.574 s) : 0, 9574070
Agent [candidate] (1.244 s) : 0, 1244180
Total [candidate] (9.585 s) : 0, 9585418
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.1 s -
Agent iast 1.248 s 147.531 ms (13.4%)
Total tracing 8.874 s -
Total iast 9.574 s 700.178 ms (7.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.106 s -
Agent iast 1.244 s 138.658 ms (12.5%)
Total tracing 8.908 s -
Total iast 9.585 s 677.733 ms (7.6%)
gantt
    title insecure-bank - break down per module: candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.481 ms) : 0, 1481
crashtracking [candidate] (1.494 ms) : 0, 1494
BytebuddyAgent [baseline] (707.642 ms) : 0, 707642
BytebuddyAgent [candidate] (709.344 ms) : 0, 709344
GlobalTracer [baseline] (248.859 ms) : 0, 248859
GlobalTracer [candidate] (250.707 ms) : 0, 250707
AppSec [baseline] (31.893 ms) : 0, 31893
AppSec [candidate] (32.429 ms) : 0, 32429
Debugger [baseline] (62.951 ms) : 0, 62951
Debugger [candidate] (63.95 ms) : 0, 63950
Remote Config [baseline] (619.41 µs) : 0, 619
Remote Config [candidate] (637.88 µs) : 0, 638
Telemetry [baseline] (8.249 ms) : 0, 8249
Telemetry [candidate] (8.333 ms) : 0, 8333
Flare Poller [baseline] (3.639 ms) : 0, 3639
Flare Poller [candidate] (3.7 ms) : 0, 3700
section iast
crashtracking [baseline] (1.5 ms) : 0, 1500
crashtracking [candidate] (1.488 ms) : 0, 1488
BytebuddyAgent [baseline] (838.913 ms) : 0, 838913
BytebuddyAgent [candidate] (834.11 ms) : 0, 834110
GlobalTracer [baseline] (238.37 ms) : 0, 238370
GlobalTracer [candidate] (239.761 ms) : 0, 239761
AppSec [baseline] (34.072 ms) : 0, 34072
AppSec [candidate] (33.237 ms) : 0, 33237
Debugger [baseline] (60.212 ms) : 0, 60212
Debugger [candidate] (60.187 ms) : 0, 60187
Remote Config [baseline] (528.46 µs) : 0, 528
Remote Config [candidate] (543.341 µs) : 0, 543
Telemetry [baseline] (7.635 ms) : 0, 7635
Telemetry [candidate] (7.652 ms) : 0, 7652
Flare Poller [baseline] (3.508 ms) : 0, 3508
Flare Poller [candidate] (3.48 ms) : 0, 3480
IAST [baseline] (27.834 ms) : 0, 27834
IAST [candidate] (28.766 ms) : 0, 28766
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/code-origin-avoid-expensive-getmethod-call
git_commit_date 1763820197 1763846953
git_commit_sha cedc49c 5612b44
release_version 1.57.0-SNAPSHOT~cedc49cb46 1.57.0-SNAPSHOT~5612b44f2f
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1763849339 1763849339
ci_job_id 1252429466 1252429466
ci_pipeline_id 83721563 83721563
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-0-zz2z3nuj 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-0-zz2z3nuj 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 2 performance improvements and 1 performance regressions! Performance is the same for 17 metrics, 16 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 worse
[+116.924µs; +229.685µs] or [+7.242%; +14.225%]
unstable
[+0.806ms; +1.575ms] or [+18.586%; +36.329%]
unstable
[-596.869op/s; -108.881op/s] or [-25.618%; -4.673%]
1.788ms 5.525ms 1977.000op/s 1.615ms 4.335ms 2329.875op/s
scenario:load:petclinic:iast:high_load better
[-2.162ms; -0.951ms] or [-11.565%; -5.088%]
better
[-3.243ms; -1.039ms] or [-10.643%; -3.409%]
unstable
[-10.551op/s; +47.113op/s] or [-4.288%; +19.147%]
17.136ms 28.331ms 264.344op/s 18.692ms 30.472ms 246.062op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46
    dateFormat X
    axisFormat %s
section baseline
no_agent (19.645 ms) : 19441, 19848
.   : milestone, 19645,
appsec (18.375 ms) : 18186, 18565
.   : milestone, 18375,
code_origins (17.816 ms) : 17636, 17997
.   : milestone, 17816,
iast (18.97 ms) : 18773, 19166
.   : milestone, 18970,
profiling (18.832 ms) : 18641, 19023
.   : milestone, 18832,
tracing (17.631 ms) : 17456, 17807
.   : milestone, 17631,
section candidate
no_agent (18.729 ms) : 18537, 18921
.   : milestone, 18729,
appsec (18.428 ms) : 18241, 18615
.   : milestone, 18428,
code_origins (17.701 ms) : 17524, 17877
.   : milestone, 17701,
iast (17.654 ms) : 17475, 17833
.   : milestone, 17654,
profiling (19.574 ms) : 19379, 19768
.   : milestone, 19574,
tracing (17.568 ms) : 17395, 17741
.   : milestone, 17568,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.645 ms [19.441 ms, 19.848 ms] -
appsec 18.375 ms [18.186 ms, 18.565 ms] -1.269 ms (-6.5%)
code_origins 17.816 ms [17.636 ms, 17.997 ms] -1.828 ms (-9.3%)
iast 18.97 ms [18.773 ms, 19.166 ms] -675.043 µs (-3.4%)
profiling 18.832 ms [18.641 ms, 19.023 ms] -812.88 µs (-4.1%)
tracing 17.631 ms [17.456 ms, 17.807 ms] -2.013 ms (-10.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 18.729 ms [18.537 ms, 18.921 ms] -
appsec 18.428 ms [18.241 ms, 18.615 ms] -301.291 µs (-1.6%)
code_origins 17.701 ms [17.524 ms, 17.877 ms] -1.029 ms (-5.5%)
iast 17.654 ms [17.475 ms, 17.833 ms] -1.075 ms (-5.7%)
profiling 19.574 ms [19.379 ms, 19.768 ms] 844.592 µs (4.5%)
tracing 17.568 ms [17.395 ms, 17.741 ms] -1.161 ms (-6.2%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.208 ms) : 1196, 1220
.   : milestone, 1208,
iast (3.349 ms) : 3300, 3398
.   : milestone, 3349,
iast_FULL (5.915 ms) : 5855, 5975
.   : milestone, 5915,
iast_GLOBAL (3.675 ms) : 3619, 3731
.   : milestone, 3675,
profiling (1.936 ms) : 1919, 1952
.   : milestone, 1936,
tracing (1.859 ms) : 1843, 1875
.   : milestone, 1859,
section candidate
no_agent (1.208 ms) : 1197, 1220
.   : milestone, 1208,
iast (3.316 ms) : 3272, 3360
.   : milestone, 3316,
iast_FULL (5.803 ms) : 5744, 5861
.   : milestone, 5803,
iast_GLOBAL (3.496 ms) : 3448, 3544
.   : milestone, 3496,
profiling (2.292 ms) : 2270, 2315
.   : milestone, 2292,
tracing (1.831 ms) : 1816, 1846
.   : milestone, 1831,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.208 ms [1.196 ms, 1.22 ms] -
iast 3.349 ms [3.3 ms, 3.398 ms] 2.141 ms (177.3%)
iast_FULL 5.915 ms [5.855 ms, 5.975 ms] 4.707 ms (389.7%)
iast_GLOBAL 3.675 ms [3.619 ms, 3.731 ms] 2.467 ms (204.3%)
profiling 1.936 ms [1.919 ms, 1.952 ms] 727.862 µs (60.3%)
tracing 1.859 ms [1.843 ms, 1.875 ms] 651.075 µs (53.9%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.208 ms [1.197 ms, 1.22 ms] -
iast 3.316 ms [3.272 ms, 3.36 ms] 2.108 ms (174.4%)
iast_FULL 5.803 ms [5.744 ms, 5.861 ms] 4.594 ms (380.2%)
iast_GLOBAL 3.496 ms [3.448 ms, 3.544 ms] 2.288 ms (189.3%)
profiling 2.292 ms [2.27 ms, 2.315 ms] 1.084 ms (89.7%)
tracing 1.831 ms [1.816 ms, 1.846 ms] 622.128 µs (51.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master mcculls/code-origin-avoid-expensive-getmethod-call
git_commit_date 1763820197 1763846953
git_commit_sha cedc49c 5612b44
release_version 1.57.0-SNAPSHOT~cedc49cb46 1.57.0-SNAPSHOT~5612b44f2f
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1763849012 1763849012
ci_job_id 1252429467 1252429467
ci_pipeline_id 83721563 83721563
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-0-jhthy2ws 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-0-jhthy2ws 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 12 metrics, 0 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.733 s) : 14733000, 14733000
.   : milestone, 14733000,
appsec (14.917 s) : 14917000, 14917000
.   : milestone, 14917000,
iast (18.021 s) : 18021000, 18021000
.   : milestone, 18021000,
iast_GLOBAL (17.877 s) : 17877000, 17877000
.   : milestone, 17877000,
profiling (15.334 s) : 15334000, 15334000
.   : milestone, 15334000,
tracing (14.863 s) : 14863000, 14863000
.   : milestone, 14863000,
section candidate
no_agent (14.84 s) : 14840000, 14840000
.   : milestone, 14840000,
appsec (14.464 s) : 14464000, 14464000
.   : milestone, 14464000,
iast (18.235 s) : 18235000, 18235000
.   : milestone, 18235000,
iast_GLOBAL (17.858 s) : 17858000, 17858000
.   : milestone, 17858000,
profiling (14.644 s) : 14644000, 14644000
.   : milestone, 14644000,
tracing (15.05 s) : 15050000, 15050000
.   : milestone, 15050000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.733 s [14.733 s, 14.733 s] -
appsec 14.917 s [14.917 s, 14.917 s] 184.0 ms (1.2%)
iast 18.021 s [18.021 s, 18.021 s] 3.288 s (22.3%)
iast_GLOBAL 17.877 s [17.877 s, 17.877 s] 3.144 s (21.3%)
profiling 15.334 s [15.334 s, 15.334 s] 601.0 ms (4.1%)
tracing 14.863 s [14.863 s, 14.863 s] 130.0 ms (0.9%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.84 s [14.84 s, 14.84 s] -
appsec 14.464 s [14.464 s, 14.464 s] -376.0 ms (-2.5%)
iast 18.235 s [18.235 s, 18.235 s] 3.395 s (22.9%)
iast_GLOBAL 17.858 s [17.858 s, 17.858 s] 3.018 s (20.3%)
profiling 14.644 s [14.644 s, 14.644 s] -196.0 ms (-1.3%)
tracing 15.05 s [15.05 s, 15.05 s] 210.0 ms (1.4%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.57.0-SNAPSHOT~5612b44f2f, baseline=1.57.0-SNAPSHOT~cedc49cb46
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.472 ms) : 1461, 1484
.   : milestone, 1472,
appsec (2.455 ms) : 2404, 2507
.   : milestone, 2455,
iast (2.217 ms) : 2152, 2282
.   : milestone, 2217,
iast_GLOBAL (2.249 ms) : 2185, 2314
.   : milestone, 2249,
profiling (2.088 ms) : 2035, 2142
.   : milestone, 2088,
tracing (2.035 ms) : 1985, 2086
.   : milestone, 2035,
section candidate
no_agent (1.473 ms) : 1461, 1484
.   : milestone, 1473,
appsec (2.467 ms) : 2415, 2519
.   : milestone, 2467,
iast (2.214 ms) : 2149, 2279
.   : milestone, 2214,
iast_GLOBAL (2.254 ms) : 2189, 2319
.   : milestone, 2254,
profiling (2.066 ms) : 2013, 2119
.   : milestone, 2066,
tracing (2.043 ms) : 1993, 2094
.   : milestone, 2043,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.461 ms, 1.484 ms] -
appsec 2.455 ms [2.404 ms, 2.507 ms] 983.141 µs (66.8%)
iast 2.217 ms [2.152 ms, 2.282 ms] 745.238 µs (50.6%)
iast_GLOBAL 2.249 ms [2.185 ms, 2.314 ms] 777.253 µs (52.8%)
profiling 2.088 ms [2.035 ms, 2.142 ms] 616.244 µs (41.9%)
tracing 2.035 ms [1.985 ms, 2.086 ms] 563.257 µs (38.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.461 ms, 1.484 ms] -
appsec 2.467 ms [2.415 ms, 2.519 ms] 994.357 µs (67.5%)
iast 2.214 ms [2.149 ms, 2.279 ms] 741.405 µs (50.3%)
iast_GLOBAL 2.254 ms [2.189 ms, 2.319 ms] 781.396 µs (53.1%)
profiling 2.066 ms [2.013 ms, 2.119 ms] 593.429 µs (40.3%)
tracing 2.043 ms [1.993 ms, 2.094 ms] 570.798 µs (38.8%)

@mcculls mcculls force-pushed the mcculls/code-origin-avoid-expensive-getmethod-call branch 2 times, most recently from d808c97 to 310ed94 Compare November 22, 2025 19:43
@mcculls mcculls force-pushed the mcculls/code-origin-avoid-expensive-getmethod-call branch from 310ed94 to 5612b44 Compare November 22, 2025 21:29
@mcculls mcculls marked this pull request as ready for review November 22, 2025 23:22
@mcculls mcculls requested review from a team as code owners November 22, 2025 23:22
@mcculls mcculls requested review from jpbempel and removed request for a team November 22, 2025 23:22
Copy link
Member

@jpbempel jpbempel left a comment

Choose a reason for hiding this comment

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

Thanks @mcculls for taking care of this!

@mcculls mcculls merged commit c79dfc6 into master Nov 24, 2025
559 of 561 checks passed
@mcculls mcculls deleted the mcculls/code-origin-avoid-expensive-getmethod-call branch November 24, 2025 08:54
@github-actions github-actions bot added this to the 1.57.0 milestone Nov 24, 2025
@bric3
Copy link
Contributor

bric3 commented Nov 24, 2025

Late for the review, but really nice !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp: debugger Dynamic Instrumentation tag: performance Performance related changes type: bug Bug report and fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants