Skip to content

Conversation

@jpbempel
Copy link
Member

What Does This Do

In case of a method probe without condition we can move the sampling is currently done in LogProbe::evaluate to LogProbe::isReadToCapture. This way if the sample fails we return false on isReadyTocapture and no CapturedContext is created and nothing captured. If we sample the execution the CapturedContext will be created we capture the context and serialize the result, but we are sure that we are not doing for nothing.
We introduce also a differentiation for single probe/multiple probe in calling evaluate that is propagated to probe implementation. it helps to differentiate the behavior based on the instrumentation

Motivation

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

In case of a method probe without condition we can move the sampling
is currently done in LogProbe::evaluate to LogProbe::isReadToCapture.
This way if the sample fails we return false on isReadyTocapture and
no CapturedContext is created and nothing captured. If we sample the
execution the CapturedContext will be created we capture the context
and serialize the result, but we are sure that we are not doing for
nothing.
We introduce also a differentiation for single probe/multiple probe
in calling evaluate that is propagated to probe implementation. it
helps to differentiate the behavior based on the instrumentation
@jpbempel jpbempel requested a review from a team as a code owner October 22, 2025 17:14
@jpbempel jpbempel requested review from shatzi and removed request for a team October 22, 2025 17:14
@jpbempel jpbempel added the comp: debugger Dynamic Instrumentation label Oct 22, 2025
@github-actions
Copy link
Contributor

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.

@jpbempel jpbempel added type: enhancement Enhancements and improvements type: refactoring tag: performance Performance related changes and removed type: enhancement Enhancements and improvements labels Oct 22, 2025
@datadog-datadog-prod-us1
Copy link
Contributor

datadog-datadog-prod-us1 bot commented Oct 22, 2025

🎯 Code Coverage
Patch Coverage: 46.67%
Total Coverage: 62.72% (+3.00%)

View detailed report

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: d96ebf4 | Docs | Was this helpful? Give us feedback!

@pr-commenter
Copy link

pr-commenter bot commented Oct 22, 2025

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1761153651 1761153997
end_time 2025-10-22T17:22:13 2025-10-22T17:27:59
git_branch master jpbempel/optimize-no-condition-method-probe
git_commit_sha 17ad12a d96ebf4
start_time 2025-10-22T17:20:52 2025-10-22T17:26:38
See matching parameters
Baseline Candidate
ci_job_id 1192264252 1192264252
ci_pipeline_id 79997454 79997454
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1761153057 1761153057

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 5 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
[-29.703µs; +19.316µs] or [-10.384%; +6.753%]
unstable
[-47.698µs; +25.677µs] or [-14.484%; +7.797%]
unstable
[-59.864µs; +35.244µs] or [-17.400%; +10.244%]
unstable
[+76.337µs; +303.633µs] or [+8.047%; +32.007%]
same
scenario:basic same same same unstable
[-5.789µs; +196.989µs] or [-0.709%; +24.132%]
same
scenario:loop unsure
[-14.792µs; -8.193µs] or [-0.167%; -0.092%]
same unsure
[-9.416µs; -0.152µs] or [-0.104%; -0.002%]
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 (329.314 µs) : 287, 372
.   : milestone, 329,
basic (294.3 µs) : 287, 301
.   : milestone, 294,
loop (8.958 ms) : 8954, 8961
.   : milestone, 8958,
section candidate
noprobe (318.304 µs) : 293, 343
.   : milestone, 318,
basic (295.526 µs) : 288, 303
.   : milestone, 296,
loop (8.957 ms) : 8952, 8962
.   : milestone, 8957,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 329.314 µs [286.826 µs, 371.802 µs]
basic 294.3 µs [287.173 µs, 301.426 µs]
loop 8.958 ms [8.954 ms, 8.961 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 318.304 µs [293.147 µs, 343.461 µs]
basic 295.526 µs [288.424 µs, 302.628 µs]
loop 8.957 ms [8.952 ms, 8.962 ms]

@pr-commenter
Copy link

pr-commenter bot commented Oct 22, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/optimize-no-condition-method-probe
git_commit_date 1761148977 1761153057
git_commit_sha 17ad12a d96ebf4
release_version 1.55.0-SNAPSHOT~17ad12a278 1.55.0-SNAPSHOT~d96ebf44f3
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1761154829 1761154829
ci_job_id 1192264245 1192264245
ci_pipeline_id 79997454 79997454
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-y1a9zsif 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-y1a9zsif 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 60 metrics, 5 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.015 s) : 0, 1014857
Total [baseline] (10.776 s) : 0, 10775684
Agent [candidate] (1.018 s) : 0, 1018093
Total [candidate] (10.717 s) : 0, 10717038
section appsec
Agent [baseline] (1.201 s) : 0, 1200874
Total [baseline] (10.757 s) : 0, 10757217
Agent [candidate] (1.205 s) : 0, 1204523
Total [candidate] (10.827 s) : 0, 10826592
section iast
Agent [baseline] (1.16 s) : 0, 1159837
Total [baseline] (11.067 s) : 0, 11066569
Agent [candidate] (1.161 s) : 0, 1160817
Total [candidate] (11.119 s) : 0, 11119261
section profiling
Agent [baseline] (1.164 s) : 0, 1163697
Total [baseline] (10.826 s) : 0, 10826324
Agent [candidate] (1.163 s) : 0, 1162562
Total [candidate] (10.764 s) : 0, 10764287
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.015 s -
Agent appsec 1.201 s 186.017 ms (18.3%)
Agent iast 1.16 s 144.981 ms (14.3%)
Agent profiling 1.164 s 148.84 ms (14.7%)
Total tracing 10.776 s -
Total appsec 10.757 s -18.467 ms (-0.2%)
Total iast 11.067 s 290.885 ms (2.7%)
Total profiling 10.826 s 50.639 ms (0.5%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.018 s -
Agent appsec 1.205 s 186.43 ms (18.3%)
Agent iast 1.161 s 142.724 ms (14.0%)
Agent profiling 1.163 s 144.469 ms (14.2%)
Total tracing 10.717 s -
Total appsec 10.827 s 109.554 ms (1.0%)
Total iast 11.119 s 402.224 ms (3.8%)
Total profiling 10.764 s 47.249 ms (0.4%)
gantt
    title petclinic - break down per module: candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.456 ms) : 0, 1456
crashtracking [candidate] (1.451 ms) : 0, 1451
BytebuddyAgent [baseline] (691.076 ms) : 0, 691076
BytebuddyAgent [candidate] (693.913 ms) : 0, 693913
GlobalTracer [baseline] (242.271 ms) : 0, 242271
GlobalTracer [candidate] (242.946 ms) : 0, 242946
AppSec [baseline] (32.344 ms) : 0, 32344
AppSec [candidate] (32.241 ms) : 0, 32241
Debugger [baseline] (6.281 ms) : 0, 6281
Debugger [candidate] (6.273 ms) : 0, 6273
Remote Config [baseline] (673.875 µs) : 0, 674
Remote Config [candidate] (672.278 µs) : 0, 672
Telemetry [baseline] (9.311 ms) : 0, 9311
Telemetry [candidate] (9.225 ms) : 0, 9225
Flare Poller [baseline] (10.283 ms) : 0, 10283
Flare Poller [candidate] (10.309 ms) : 0, 10309
section appsec
crashtracking [baseline] (1.478 ms) : 0, 1478
crashtracking [candidate] (1.466 ms) : 0, 1466
BytebuddyAgent [baseline] (723.118 ms) : 0, 723118
BytebuddyAgent [candidate] (724.914 ms) : 0, 724914
GlobalTracer [baseline] (236.032 ms) : 0, 236032
GlobalTracer [candidate] (236.867 ms) : 0, 236867
IAST [baseline] (24.953 ms) : 0, 24953
IAST [candidate] (25.252 ms) : 0, 25252
AppSec [baseline] (174.754 ms) : 0, 174754
AppSec [candidate] (175.26 ms) : 0, 175260
Debugger [baseline] (6.078 ms) : 0, 6078
Debugger [candidate] (6.13 ms) : 0, 6130
Remote Config [baseline] (635.313 µs) : 0, 635
Remote Config [candidate] (632.631 µs) : 0, 633
Telemetry [baseline] (8.573 ms) : 0, 8573
Telemetry [candidate] (8.664 ms) : 0, 8664
Flare Poller [baseline] (3.978 ms) : 0, 3978
Flare Poller [candidate] (3.994 ms) : 0, 3994
section iast
crashtracking [baseline] (1.454 ms) : 0, 1454
crashtracking [candidate] (1.468 ms) : 0, 1468
BytebuddyAgent [baseline] (821.186 ms) : 0, 821186
BytebuddyAgent [candidate] (823.415 ms) : 0, 823415
GlobalTracer [baseline] (233.098 ms) : 0, 233098
GlobalTracer [candidate] (232.678 ms) : 0, 232678
IAST [baseline] (27.169 ms) : 0, 27169
IAST [candidate] (26.847 ms) : 0, 26847
AppSec [baseline] (35.384 ms) : 0, 35384
AppSec [candidate] (35.089 ms) : 0, 35089
Debugger [baseline] (6.221 ms) : 0, 6221
Debugger [candidate] (6.138 ms) : 0, 6138
Remote Config [baseline] (602.453 µs) : 0, 602
Remote Config [candidate] (599.387 µs) : 0, 599
Telemetry [baseline] (8.775 ms) : 0, 8775
Telemetry [candidate] (8.651 ms) : 0, 8651
Flare Poller [baseline] (4.306 ms) : 0, 4306
Flare Poller [candidate] (4.333 ms) : 0, 4333
section profiling
crashtracking [baseline] (1.481 ms) : 0, 1481
crashtracking [candidate] (1.464 ms) : 0, 1464
BytebuddyAgent [baseline] (719.863 ms) : 0, 719863
BytebuddyAgent [candidate] (720.301 ms) : 0, 720301
GlobalTracer [baseline] (218.831 ms) : 0, 218831
GlobalTracer [candidate] (218.646 ms) : 0, 218646
AppSec [baseline] (32.309 ms) : 0, 32309
AppSec [candidate] (32.214 ms) : 0, 32214
Debugger [baseline] (6.626 ms) : 0, 6626
Debugger [candidate] (6.648 ms) : 0, 6648
Remote Config [baseline] (717.438 µs) : 0, 717
Remote Config [candidate] (688.166 µs) : 0, 688
Telemetry [baseline] (15.254 ms) : 0, 15254
Telemetry [candidate] (15.531 ms) : 0, 15531
Flare Poller [baseline] (4.996 ms) : 0, 4996
Flare Poller [candidate] (4.192 ms) : 0, 4192
ProfilingAgent [baseline] (109.871 ms) : 0, 109871
ProfilingAgent [candidate] (109.248 ms) : 0, 109248
Profiling [baseline] (110.489 ms) : 0, 110489
Profiling [candidate] (109.869 ms) : 0, 109869
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.027 s) : 0, 1026863
Total [baseline] (8.676 s) : 0, 8675941
Agent [candidate] (1.02 s) : 0, 1020303
Total [candidate] (8.643 s) : 0, 8642662
section iast
Agent [baseline] (1.148 s) : 0, 1147570
Total [baseline] (9.247 s) : 0, 9247137
Agent [candidate] (1.161 s) : 0, 1160543
Total [candidate] (9.284 s) : 0, 9284372
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.027 s -
Agent iast 1.148 s 120.708 ms (11.8%)
Total tracing 8.676 s -
Total iast 9.247 s 571.195 ms (6.6%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.02 s -
Agent iast 1.161 s 140.24 ms (13.7%)
Total tracing 8.643 s -
Total iast 9.284 s 641.71 ms (7.4%)
gantt
    title insecure-bank - break down per module: candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.491 ms) : 0, 1491
crashtracking [candidate] (1.462 ms) : 0, 1462
BytebuddyAgent [baseline] (700.303 ms) : 0, 700303
BytebuddyAgent [candidate] (693.894 ms) : 0, 693894
GlobalTracer [baseline] (244.276 ms) : 0, 244276
GlobalTracer [candidate] (243.634 ms) : 0, 243634
AppSec [baseline] (32.586 ms) : 0, 32586
AppSec [candidate] (32.283 ms) : 0, 32283
Debugger [baseline] (6.381 ms) : 0, 6381
Debugger [candidate] (6.291 ms) : 0, 6291
Remote Config [baseline] (684.127 µs) : 0, 684
Remote Config [candidate] (684.939 µs) : 0, 685
Telemetry [baseline] (9.473 ms) : 0, 9473
Telemetry [candidate] (9.257 ms) : 0, 9257
Flare Poller [baseline] (10.279 ms) : 0, 10279
Flare Poller [candidate] (11.657 ms) : 0, 11657
section iast
crashtracking [baseline] (1.482 ms) : 0, 1482
crashtracking [candidate] (1.495 ms) : 0, 1495
BytebuddyAgent [baseline] (812.121 ms) : 0, 812121
BytebuddyAgent [candidate] (821.757 ms) : 0, 821757
GlobalTracer [baseline] (230.905 ms) : 0, 230905
GlobalTracer [candidate] (233.419 ms) : 0, 233419
IAST [baseline] (26.625 ms) : 0, 26625
IAST [candidate] (27.012 ms) : 0, 27012
AppSec [baseline] (35.387 ms) : 0, 35387
AppSec [candidate] (35.444 ms) : 0, 35444
Debugger [baseline] (6.118 ms) : 0, 6118
Debugger [candidate] (6.169 ms) : 0, 6169
Remote Config [baseline] (605.331 µs) : 0, 605
Remote Config [candidate] (614.504 µs) : 0, 615
Telemetry [baseline] (8.713 ms) : 0, 8713
Telemetry [candidate] (8.712 ms) : 0, 8712
Flare Poller [baseline] (4.237 ms) : 0, 4237
Flare Poller [candidate] (4.361 ms) : 0, 4361
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/optimize-no-condition-method-probe
git_commit_date 1761148977 1761153057
git_commit_sha 17ad12a d96ebf4
release_version 1.55.0-SNAPSHOT~17ad12a278 1.55.0-SNAPSHOT~d96ebf44f3
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1761154502 1761154502
ci_job_id 1192264246 1192264246
ci_pipeline_id 79997454 79997454
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-2-igbn6ng1 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-2-igbn6ng1 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 2 performance regressions! Performance is the same for 8 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:insecure-bank:profiling:high_load better
[-825.654µs; -506.580µs] or [-9.003%; -5.524%]
unstable
[-32.385op/s; +110.760op/s] or [-6.398%; +21.883%]
8.505ms 545.344op/s 9.171ms 506.156op/s
scenario:load:petclinic:appsec:high_load better
[-3.999ms; -3.113ms] or [-8.158%; -6.351%]
unstable
[-1.113op/s; +13.597op/s] or [-1.152%; +14.065%]
45.462ms 102.912op/s 49.018ms 96.671op/s
scenario:load:petclinic:iast:high_load worse
[+2.017ms; +2.842ms] or [+4.641%; +6.538%]
unstable
[-13.455op/s; +2.005op/s] or [-12.497%; +1.862%]
45.896ms 101.938op/s 43.466ms 107.662op/s
scenario:load:petclinic:no_agent:high_load worse
[+1.396ms; +2.050ms] or [+3.871%; +5.684%]
unstable
[-15.111op/s; +3.386op/s] or [-11.658%; +2.613%]
37.793ms 123.763op/s 36.070ms 129.625op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278
    dateFormat X
    axisFormat %s
section baseline
no_agent (4.374 ms) : 4323, 4425
.   : milestone, 4374,
iast (9.834 ms) : 9666, 10001
.   : milestone, 9834,
iast_FULL (14.345 ms) : 14060, 14630
.   : milestone, 14345,
iast_GLOBAL (10.214 ms) : 10033, 10395
.   : milestone, 10214,
profiling (9.171 ms) : 9016, 9326
.   : milestone, 9171,
tracing (7.66 ms) : 7544, 7776
.   : milestone, 7660,
section candidate
no_agent (4.422 ms) : 4364, 4479
.   : milestone, 4422,
iast (9.512 ms) : 9349, 9675
.   : milestone, 9512,
iast_FULL (14.091 ms) : 13810, 14373
.   : milestone, 14091,
iast_GLOBAL (10.379 ms) : 10195, 10563
.   : milestone, 10379,
profiling (8.505 ms) : 8364, 8646
.   : milestone, 8505,
tracing (7.783 ms) : 7673, 7894
.   : milestone, 7783,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.374 ms [4.323 ms, 4.425 ms] -
iast 9.834 ms [9.666 ms, 10.001 ms] 5.46 ms (124.8%)
iast_FULL 14.345 ms [14.06 ms, 14.63 ms] 9.971 ms (228.0%)
iast_GLOBAL 10.214 ms [10.033 ms, 10.395 ms] 5.84 ms (133.5%)
profiling 9.171 ms [9.016 ms, 9.326 ms] 4.797 ms (109.7%)
tracing 7.66 ms [7.544 ms, 7.776 ms] 3.286 ms (75.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.422 ms [4.364 ms, 4.479 ms] -
iast 9.512 ms [9.349 ms, 9.675 ms] 5.09 ms (115.1%)
iast_FULL 14.091 ms [13.81 ms, 14.373 ms] 9.67 ms (218.7%)
iast_GLOBAL 10.379 ms [10.195 ms, 10.563 ms] 5.958 ms (134.7%)
profiling 8.505 ms [8.364 ms, 8.646 ms] 4.083 ms (92.4%)
tracing 7.783 ms [7.673 ms, 7.894 ms] 3.362 ms (76.0%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278
    dateFormat X
    axisFormat %s
section baseline
no_agent (36.07 ms) : 35777, 36363
.   : milestone, 36070,
appsec (49.018 ms) : 48595, 49442
.   : milestone, 49018,
code_origins (43.784 ms) : 43404, 44164
.   : milestone, 43784,
iast (43.466 ms) : 43093, 43840
.   : milestone, 43466,
profiling (51.18 ms) : 50664, 51696
.   : milestone, 51180,
tracing (43.905 ms) : 43533, 44277
.   : milestone, 43905,
section candidate
no_agent (37.793 ms) : 37479, 38107
.   : milestone, 37793,
appsec (45.462 ms) : 45063, 45862
.   : milestone, 45462,
code_origins (43.854 ms) : 43485, 44224
.   : milestone, 43854,
iast (45.896 ms) : 45503, 46289
.   : milestone, 45896,
profiling (52.249 ms) : 51707, 52790
.   : milestone, 52249,
tracing (44.825 ms) : 44443, 45208
.   : milestone, 44825,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 36.07 ms [35.777 ms, 36.363 ms] -
appsec 49.018 ms [48.595 ms, 49.442 ms] 12.948 ms (35.9%)
code_origins 43.784 ms [43.404 ms, 44.164 ms] 7.714 ms (21.4%)
iast 43.466 ms [43.093 ms, 43.84 ms] 7.396 ms (20.5%)
profiling 51.18 ms [50.664 ms, 51.696 ms] 15.11 ms (41.9%)
tracing 43.905 ms [43.533 ms, 44.277 ms] 7.835 ms (21.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.793 ms [37.479 ms, 38.107 ms] -
appsec 45.462 ms [45.063 ms, 45.862 ms] 7.669 ms (20.3%)
code_origins 43.854 ms [43.485 ms, 44.224 ms] 6.061 ms (16.0%)
iast 45.896 ms [45.503 ms, 46.289 ms] 8.103 ms (21.4%)
profiling 52.249 ms [51.707 ms, 52.79 ms] 14.455 ms (38.2%)
tracing 44.825 ms [44.443 ms, 45.208 ms] 7.032 ms (18.6%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/optimize-no-condition-method-probe
git_commit_date 1761148977 1761153057
git_commit_sha 17ad12a d96ebf4
release_version 1.55.0-SNAPSHOT~17ad12a278 1.55.0-SNAPSHOT~d96ebf44f3
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1761155070 1761155070
ci_job_id 1192264247 1192264247
ci_pipeline_id 79997454 79997454
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-al0pmu75 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-al0pmu75 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 biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.745 s) : 14745000, 14745000
.   : milestone, 14745000,
appsec (15.02 s) : 15020000, 15020000
.   : milestone, 15020000,
iast (18.657 s) : 18657000, 18657000
.   : milestone, 18657000,
iast_GLOBAL (18.218 s) : 18218000, 18218000
.   : milestone, 18218000,
profiling (15.408 s) : 15408000, 15408000
.   : milestone, 15408000,
tracing (15.148 s) : 15148000, 15148000
.   : milestone, 15148000,
section candidate
no_agent (14.911 s) : 14911000, 14911000
.   : milestone, 14911000,
appsec (14.976 s) : 14976000, 14976000
.   : milestone, 14976000,
iast (18.582 s) : 18582000, 18582000
.   : milestone, 18582000,
iast_GLOBAL (18.106 s) : 18106000, 18106000
.   : milestone, 18106000,
profiling (15.093 s) : 15093000, 15093000
.   : milestone, 15093000,
tracing (14.985 s) : 14985000, 14985000
.   : milestone, 14985000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.745 s [14.745 s, 14.745 s] -
appsec 15.02 s [15.02 s, 15.02 s] 275.0 ms (1.9%)
iast 18.657 s [18.657 s, 18.657 s] 3.912 s (26.5%)
iast_GLOBAL 18.218 s [18.218 s, 18.218 s] 3.473 s (23.6%)
profiling 15.408 s [15.408 s, 15.408 s] 663.0 ms (4.5%)
tracing 15.148 s [15.148 s, 15.148 s] 403.0 ms (2.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.911 s [14.911 s, 14.911 s] -
appsec 14.976 s [14.976 s, 14.976 s] 65.0 ms (0.4%)
iast 18.582 s [18.582 s, 18.582 s] 3.671 s (24.6%)
iast_GLOBAL 18.106 s [18.106 s, 18.106 s] 3.195 s (21.4%)
profiling 15.093 s [15.093 s, 15.093 s] 182.0 ms (1.2%)
tracing 14.985 s [14.985 s, 14.985 s] 74.0 ms (0.5%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.55.0-SNAPSHOT~d96ebf44f3, baseline=1.55.0-SNAPSHOT~17ad12a278
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.476 ms) : 1465, 1487
.   : milestone, 1476,
appsec (3.666 ms) : 3453, 3880
.   : milestone, 3666,
iast (2.224 ms) : 2160, 2289
.   : milestone, 2224,
iast_GLOBAL (2.265 ms) : 2200, 2329
.   : milestone, 2265,
profiling (2.057 ms) : 2005, 2109
.   : milestone, 2057,
tracing (2.041 ms) : 1990, 2092
.   : milestone, 2041,
section candidate
no_agent (1.478 ms) : 1467, 1490
.   : milestone, 1478,
appsec (3.728 ms) : 3509, 3947
.   : milestone, 3728,
iast (2.221 ms) : 2157, 2286
.   : milestone, 2221,
iast_GLOBAL (2.268 ms) : 2203, 2334
.   : milestone, 2268,
profiling (2.07 ms) : 2017, 2123
.   : milestone, 2070,
tracing (2.023 ms) : 1973, 2073
.   : milestone, 2023,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.465 ms, 1.487 ms] -
appsec 3.666 ms [3.453 ms, 3.88 ms] 2.19 ms (148.4%)
iast 2.224 ms [2.16 ms, 2.289 ms] 748.371 µs (50.7%)
iast_GLOBAL 2.265 ms [2.2 ms, 2.329 ms] 788.547 µs (53.4%)
profiling 2.057 ms [2.005 ms, 2.109 ms] 580.718 µs (39.3%)
tracing 2.041 ms [1.99 ms, 2.092 ms] 564.737 µs (38.3%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.478 ms [1.467 ms, 1.49 ms] -
appsec 3.728 ms [3.509 ms, 3.947 ms] 2.25 ms (152.2%)
iast 2.221 ms [2.157 ms, 2.286 ms] 743.09 µs (50.3%)
iast_GLOBAL 2.268 ms [2.203 ms, 2.334 ms] 790.064 µs (53.4%)
profiling 2.07 ms [2.017 ms, 2.123 ms] 591.97 µs (40.0%)
tracing 2.023 ms [1.973 ms, 2.073 ms] 544.697 µs (36.8%)

@jpbempel jpbempel requested a review from evanchooly October 23, 2025 07:05
@jpbempel jpbempel merged commit 9329e98 into master Oct 23, 2025
550 of 556 checks passed
@jpbempel jpbempel deleted the jpbempel/optimize-no-condition-method-probe branch October 23, 2025 14:30
@github-actions github-actions bot added this to the 1.55.0 milestone Oct 23, 2025
amarziali pushed a commit that referenced this pull request Oct 27, 2025
In case of a method probe without condition we can move the sampling
is currently done in LogProbe::evaluate to LogProbe::isReadToCapture.
This way if the sample fails we return false on isReadyTocapture and
no CapturedContext is created and nothing captured. If we sample the
execution the CapturedContext will be created we capture the context
and serialize the result, but we are sure that we are not doing for
nothing.
We introduce also a differentiation for single probe/multiple probe
in calling evaluate that is propagated to probe implementation. it
helps to differentiate the behavior based on the instrumentation
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: refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants