Skip to content

Saving buildGitInfo lambda into a member variable#10615

Open
dougqh wants to merge 2 commits intomasterfrom
dougqh/optiimize-gitiinfo
Open

Saving buildGitInfo lambda into a member variable#10615
dougqh wants to merge 2 commits intomasterfrom
dougqh/optiimize-gitiinfo

Conversation

@dougqh
Copy link
Contributor

@dougqh dougqh commented Feb 17, 2026

What Does This Do

Saving buildGitInfo lambda into a member variable

Motivation

Unfortunately, profiles show the lambda from this::buildGitInfo was a hot allocation point. That would suggest that escape analysis wasn't able to kick in here.

So I introduced a member variable to hold the variable to avoid repeatedly allocating

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

Note: Once your PR is ready to merge, add it to the merge queue by commenting /merge. /merge -c cancels the queue request. /merge -f --reason "reason" skips all merge queue checks; please use this judiciously, as some checks do not run at the PR-level. For more information, see this doc.

Unfortunately, profiles show the lambda from this:::buildGitIInfo being a hot allocation point.  That would suggest that escape analysis wasn't able to kick in here.

So I introduced a member variable to hold the variable to avoid repeatedly allocating
@dougqh dougqh requested a review from a team as a code owner February 17, 2026 20:43
@dougqh dougqh added type: enhancement Enhancements and improvements tag: performance Performance related changes comp: ci visibility Continuous Integration Visibility labels Feb 17, 2026
@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - sbt-scalatest

Job Status: success

Scenario Overhead (%)
agent 58.43
agentEvpProxy 57.75

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - nebula-release-plugin

Job Status: success

Scenario Overhead (%)
agent 38.64
agentless 39.16
agentlessCodeCoverage 44.78
agentlessLineCoverage 76.88

Copy link
Contributor

@mcculls mcculls left a comment

Choose a reason for hiding this comment

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

Interesting, I wonder if it's related to the large use of nested lambdas inside buildGitInfo?

EDIT: I'm wondering if it might be because buildGitInfo is not stateless, so the JVM doesn't cache the reference (https://stackoverflow.com/a/23991339)

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - netflix-zuul

Job Status: success

Scenario Overhead (%)
agent 91.72
agentless 84.22
agentlessCodeCoverage 98.84
agentlessLineCoverage 115.12

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - reactive-streams-jvm

Job Status: success

Scenario Overhead (%)
agent 18.94
agentless 15.91
agentlessCodeCoverage 17.41
agentlessLineCoverage 27.01

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - pass4s

Job Status: success

Scenario Overhead (%)
agent 18.89
agentless 19.67
agentlessCodeCoverage 23.89

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - sonar-kotlin

Job Status: success

Scenario Overhead (%)
agent 12.68
agentless 11.47
agentlessCodeCoverage 14.33
agentlessLineCoverage 18.87

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - jolokia

Job Status: success

Scenario Overhead (%)
agent 93.38
agentless 88.73
agentlessCodeCoverage 98.18
agentlessLineCoverage 99.15

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - okhttp

Job Status: success

Scenario Overhead (%)
agent 19.22
agentless 18.80
agentlessCodeCoverage 23.81
agentlessLineCoverage 38.16

@cit-pr-commenter-54b7da
Copy link

cit-pr-commenter-54b7da bot commented Feb 17, 2026

Test Environment - spring_boot

Job Status: success

Scenario Overhead (%)
agent 15.34
agentless 8.61
agentlessCodeCoverage 12.42
agentlessLineCoverage 31.23

@pr-commenter
Copy link

pr-commenter bot commented Feb 17, 2026

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dougqh/optiimize-gitiinfo
git_commit_date 1771357015 1771367122
git_commit_sha 7f66c79 f0560d1
release_version 1.60.0-SNAPSHOT~7f66c79293 1.60.0-SNAPSHOT~f0560d1735
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1771368864 1771368864
ci_job_id 1433767600 1433767600
ci_pipeline_id 97086436 97086436
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-awirn7xc 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-awirn7xc 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 1 performance regressions! Performance is the same for 61 metrics, 9 unstable metrics.

scenario Δ mean execution_time candidate mean execution_time baseline mean execution_time
scenario:startup:petclinic:tracing:Debugger worse
[+2.562ms; +7.395ms] or [+4.104%; +11.848%]
67.394ms 62.416ms
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.064 s) : 0, 1064180
Total [baseline] (8.793 s) : 0, 8792525
Agent [candidate] (1.064 s) : 0, 1064343
Total [candidate] (8.725 s) : 0, 8724545
section iast
Agent [baseline] (1.235 s) : 0, 1235097
Total [baseline] (9.395 s) : 0, 9394999
Agent [candidate] (1.233 s) : 0, 1233035
Total [candidate] (9.391 s) : 0, 9390883
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.064 s -
Agent iast 1.235 s 170.917 ms (16.1%)
Total tracing 8.793 s -
Total iast 9.395 s 602.474 ms (6.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.064 s -
Agent iast 1.233 s 168.692 ms (15.8%)
Total tracing 8.725 s -
Total iast 9.391 s 666.337 ms (7.6%)
gantt
    title insecure-bank - break down per module: candidate=1.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.199 ms) : 0, 1199
crashtracking [candidate] (1.191 ms) : 0, 1191
BytebuddyAgent [baseline] (629.807 ms) : 0, 629807
BytebuddyAgent [candidate] (627.421 ms) : 0, 627421
AgentMeter [baseline] (29.056 ms) : 0, 29056
AgentMeter [candidate] (29.116 ms) : 0, 29116
GlobalTracer [baseline] (257.519 ms) : 0, 257519
GlobalTracer [candidate] (257.366 ms) : 0, 257366
AppSec [baseline] (32.804 ms) : 0, 32804
AppSec [candidate] (32.892 ms) : 0, 32892
Debugger [baseline] (60.758 ms) : 0, 60758
Debugger [candidate] (63.557 ms) : 0, 63557
Remote Config [baseline] (643.275 µs) : 0, 643
Remote Config [candidate] (683.746 µs) : 0, 684
Telemetry [baseline] (12.375 ms) : 0, 12375
Telemetry [candidate] (10.632 ms) : 0, 10632
Flare Poller [baseline] (4.526 ms) : 0, 4526
Flare Poller [candidate] (5.303 ms) : 0, 5303
section iast
crashtracking [baseline] (1.182 ms) : 0, 1182
crashtracking [candidate] (1.203 ms) : 0, 1203
BytebuddyAgent [baseline] (798.009 ms) : 0, 798009
BytebuddyAgent [candidate] (796.151 ms) : 0, 796151
AgentMeter [baseline] (11.294 ms) : 0, 11294
AgentMeter [candidate] (11.352 ms) : 0, 11352
GlobalTracer [baseline] (248.975 ms) : 0, 248975
GlobalTracer [candidate] (248.392 ms) : 0, 248392
AppSec [baseline] (34.898 ms) : 0, 34898
AppSec [candidate] (32.605 ms) : 0, 32605
Debugger [baseline] (65.349 ms) : 0, 65349
Debugger [candidate] (67.527 ms) : 0, 67527
Remote Config [baseline] (555.44 µs) : 0, 555
Remote Config [candidate] (533.702 µs) : 0, 534
Telemetry [baseline] (8.657 ms) : 0, 8657
Telemetry [candidate] (8.691 ms) : 0, 8691
Flare Poller [baseline] (3.505 ms) : 0, 3505
Flare Poller [candidate] (3.43 ms) : 0, 3430
IAST [baseline] (27.244 ms) : 0, 27244
IAST [candidate] (26.937 ms) : 0, 26937
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.073 s) : 0, 1073480
Total [baseline] (10.947 s) : 0, 10947293
Agent [candidate] (1.07 s) : 0, 1070018
Total [candidate] (10.872 s) : 0, 10871657
section appsec
Agent [baseline] (1.242 s) : 0, 1241974
Total [baseline] (11.085 s) : 0, 11085099
Agent [candidate] (1.241 s) : 0, 1241429
Total [candidate] (11.0 s) : 0, 11000171
section iast
Agent [baseline] (1.237 s) : 0, 1237230
Total [baseline] (11.281 s) : 0, 11281085
Agent [candidate] (1.231 s) : 0, 1230793
Total [candidate] (11.161 s) : 0, 11160746
section profiling
Agent [baseline] (1.195 s) : 0, 1194553
Total [baseline] (11.051 s) : 0, 11050655
Agent [candidate] (1.194 s) : 0, 1194229
Total [candidate] (11.017 s) : 0, 11017315
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.073 s -
Agent appsec 1.242 s 168.494 ms (15.7%)
Agent iast 1.237 s 163.75 ms (15.3%)
Agent profiling 1.195 s 121.073 ms (11.3%)
Total tracing 10.947 s -
Total appsec 11.085 s 137.806 ms (1.3%)
Total iast 11.281 s 333.792 ms (3.0%)
Total profiling 11.051 s 103.362 ms (0.9%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.07 s -
Agent appsec 1.241 s 171.411 ms (16.0%)
Agent iast 1.231 s 160.775 ms (15.0%)
Agent profiling 1.194 s 124.211 ms (11.6%)
Total tracing 10.872 s -
Total appsec 11.0 s 128.513 ms (1.2%)
Total iast 11.161 s 289.088 ms (2.7%)
Total profiling 11.017 s 145.657 ms (1.3%)
gantt
    title petclinic - break down per module: candidate=1.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293

    dateFormat X
    axisFormat %s
section tracing
crashtracking [baseline] (1.197 ms) : 0, 1197
crashtracking [candidate] (1.211 ms) : 0, 1211
BytebuddyAgent [baseline] (633.165 ms) : 0, 633165
BytebuddyAgent [candidate] (631.161 ms) : 0, 631161
AgentMeter [baseline] (29.244 ms) : 0, 29244
AgentMeter [candidate] (29.26 ms) : 0, 29260
GlobalTracer [baseline] (259.511 ms) : 0, 259511
GlobalTracer [candidate] (258.465 ms) : 0, 258465
AppSec [baseline] (33.254 ms) : 0, 33254
AppSec [candidate] (32.843 ms) : 0, 32843
Debugger [baseline] (62.416 ms) : 0, 62416
Debugger [candidate] (67.394 ms) : 0, 67394
Remote Config [baseline] (628.521 µs) : 0, 629
Remote Config [candidate] (613.481 µs) : 0, 613
Telemetry [baseline] (13.121 ms) : 0, 13121
Telemetry [candidate] (9.117 ms) : 0, 9117
Flare Poller [baseline] (5.368 ms) : 0, 5368
Flare Poller [candidate] (3.782 ms) : 0, 3782
section appsec
crashtracking [baseline] (1.196 ms) : 0, 1196
crashtracking [candidate] (1.196 ms) : 0, 1196
BytebuddyAgent [baseline] (658.86 ms) : 0, 658860
BytebuddyAgent [candidate] (659.359 ms) : 0, 659359
AgentMeter [baseline] (12.008 ms) : 0, 12008
AgentMeter [candidate] (11.999 ms) : 0, 11999
GlobalTracer [baseline] (258.561 ms) : 0, 258561
GlobalTracer [candidate] (258.461 ms) : 0, 258461
AppSec [baseline] (168.639 ms) : 0, 168639
AppSec [candidate] (168.415 ms) : 0, 168415
Debugger [baseline] (67.672 ms) : 0, 67672
Debugger [candidate] (66.742 ms) : 0, 66742
Remote Config [baseline] (657.846 µs) : 0, 658
Remote Config [candidate] (643.953 µs) : 0, 644
Telemetry [baseline] (9.871 ms) : 0, 9871
Telemetry [candidate] (9.393 ms) : 0, 9393
Flare Poller [baseline] (3.776 ms) : 0, 3776
Flare Poller [candidate] (3.728 ms) : 0, 3728
IAST [baseline] (25.252 ms) : 0, 25252
IAST [candidate] (25.366 ms) : 0, 25366
section iast
crashtracking [baseline] (1.183 ms) : 0, 1183
crashtracking [candidate] (1.212 ms) : 0, 1212
BytebuddyAgent [baseline] (798.869 ms) : 0, 798869
BytebuddyAgent [candidate] (794.503 ms) : 0, 794503
AgentMeter [baseline] (11.297 ms) : 0, 11297
AgentMeter [candidate] (11.357 ms) : 0, 11357
GlobalTracer [baseline] (249.168 ms) : 0, 249168
GlobalTracer [candidate] (247.709 ms) : 0, 247709
AppSec [baseline] (33.977 ms) : 0, 33977
AppSec [candidate] (32.948 ms) : 0, 32948
Debugger [baseline] (67.462 ms) : 0, 67462
Debugger [candidate] (67.543 ms) : 0, 67543
Remote Config [baseline] (546.74 µs) : 0, 547
Remote Config [candidate] (539.288 µs) : 0, 539
Telemetry [baseline] (8.668 ms) : 0, 8668
Telemetry [candidate] (8.612 ms) : 0, 8612
Flare Poller [baseline] (3.555 ms) : 0, 3555
Flare Poller [candidate] (3.428 ms) : 0, 3428
IAST [baseline] (27.134 ms) : 0, 27134
IAST [candidate] (26.965 ms) : 0, 26965
section profiling
crashtracking [baseline] (1.219 ms) : 0, 1219
crashtracking [candidate] (1.185 ms) : 0, 1185
BytebuddyAgent [baseline] (683.286 ms) : 0, 683286
BytebuddyAgent [candidate] (683.554 ms) : 0, 683554
AgentMeter [baseline] (8.706 ms) : 0, 8706
AgentMeter [candidate] (8.551 ms) : 0, 8551
GlobalTracer [baseline] (216.849 ms) : 0, 216849
GlobalTracer [candidate] (216.263 ms) : 0, 216263
AppSec [baseline] (32.871 ms) : 0, 32871
AppSec [candidate] (32.66 ms) : 0, 32660
Debugger [baseline] (67.967 ms) : 0, 67967
Debugger [candidate] (67.545 ms) : 0, 67545
Remote Config [baseline] (633.366 µs) : 0, 633
Remote Config [candidate] (642.822 µs) : 0, 643
Telemetry [baseline] (9.014 ms) : 0, 9014
Telemetry [candidate] (9.078 ms) : 0, 9078
Flare Poller [baseline] (3.784 ms) : 0, 3784
Flare Poller [candidate] (3.763 ms) : 0, 3763
ProfilingAgent [baseline] (100.111 ms) : 0, 100111
ProfilingAgent [candidate] (100.163 ms) : 0, 100163
Profiling [baseline] (100.693 ms) : 0, 100693
Profiling [candidate] (100.733 ms) : 0, 100733
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dougqh/optiimize-gitiinfo
git_commit_date 1771357015 1771367122
git_commit_sha 7f66c79 f0560d1
release_version 1.60.0-SNAPSHOT~7f66c79293 1.60.0-SNAPSHOT~f0560d1735
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1771369438 1771369438
ci_job_id 1433767601 1433767601
ci_pipeline_id 97086436 97086436
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-xmfwu5g2 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-xmfwu5g2 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 1 performance regressions! Performance is the same for 19 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:petclinic:no_agent:high_load worse
[+0.436ms; +1.997ms] or [+2.490%; +11.406%]
unstable
[-0.227ms; +3.522ms] or [-0.776%; +12.030%]
unstable
[-40.422op/s; +11.547op/s] or [-15.543%; +4.440%]
18.726ms 30.922ms 245.625op/s 17.509ms 29.274ms 260.062op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.193 ms) : 1180, 1206
.   : milestone, 1193,
iast (3.135 ms) : 3094, 3176
.   : milestone, 3135,
iast_FULL (5.783 ms) : 5725, 5841
.   : milestone, 5783,
iast_GLOBAL (3.605 ms) : 3551, 3659
.   : milestone, 3605,
profiling (2.059 ms) : 2042, 2077
.   : milestone, 2059,
tracing (1.785 ms) : 1770, 1799
.   : milestone, 1785,
section candidate
no_agent (1.168 ms) : 1157, 1179
.   : milestone, 1168,
iast (3.149 ms) : 3110, 3187
.   : milestone, 3149,
iast_FULL (5.912 ms) : 5853, 5972
.   : milestone, 5912,
iast_GLOBAL (3.617 ms) : 3565, 3670
.   : milestone, 3617,
profiling (2.218 ms) : 2198, 2238
.   : milestone, 2218,
tracing (1.771 ms) : 1757, 1785
.   : milestone, 1771,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.193 ms [1.18 ms, 1.206 ms] -
iast 3.135 ms [3.094 ms, 3.176 ms] 1.942 ms (162.8%)
iast_FULL 5.783 ms [5.725 ms, 5.841 ms] 4.59 ms (384.7%)
iast_GLOBAL 3.605 ms [3.551 ms, 3.659 ms] 2.412 ms (202.2%)
profiling 2.059 ms [2.042 ms, 2.077 ms] 866.296 µs (72.6%)
tracing 1.785 ms [1.77 ms, 1.799 ms] 591.578 µs (49.6%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.168 ms [1.157 ms, 1.179 ms] -
iast 3.149 ms [3.11 ms, 3.187 ms] 1.98 ms (169.5%)
iast_FULL 5.912 ms [5.853 ms, 5.972 ms] 4.744 ms (406.1%)
iast_GLOBAL 3.617 ms [3.565 ms, 3.67 ms] 2.449 ms (209.6%)
profiling 2.218 ms [2.198 ms, 2.238 ms] 1.05 ms (89.8%)
tracing 1.771 ms [1.757 ms, 1.785 ms] 602.911 µs (51.6%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293
    dateFormat X
    axisFormat %s
section baseline
no_agent (17.939 ms) : 17756, 18122
.   : milestone, 17939,
appsec (18.537 ms) : 18346, 18729
.   : milestone, 18537,
code_origins (17.474 ms) : 17298, 17651
.   : milestone, 17474,
iast (17.511 ms) : 17337, 17685
.   : milestone, 17511,
profiling (18.631 ms) : 18445, 18817
.   : milestone, 18631,
tracing (17.788 ms) : 17607, 17968
.   : milestone, 17788,
section candidate
no_agent (19.002 ms) : 18805, 19198
.   : milestone, 19002,
appsec (18.256 ms) : 18069, 18443
.   : milestone, 18256,
code_origins (17.656 ms) : 17482, 17831
.   : milestone, 17656,
iast (17.621 ms) : 17447, 17795
.   : milestone, 17621,
profiling (18.314 ms) : 18129, 18498
.   : milestone, 18314,
tracing (17.747 ms) : 17569, 17926
.   : milestone, 17747,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 17.939 ms [17.756 ms, 18.122 ms] -
appsec 18.537 ms [18.346 ms, 18.729 ms] 598.693 µs (3.3%)
code_origins 17.474 ms [17.298 ms, 17.651 ms] -464.317 µs (-2.6%)
iast 17.511 ms [17.337 ms, 17.685 ms] -427.781 µs (-2.4%)
profiling 18.631 ms [18.445 ms, 18.817 ms] 692.334 µs (3.9%)
tracing 17.788 ms [17.607 ms, 17.968 ms] -150.889 µs (-0.8%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 19.002 ms [18.805 ms, 19.198 ms] -
appsec 18.256 ms [18.069 ms, 18.443 ms] -746.046 µs (-3.9%)
code_origins 17.656 ms [17.482 ms, 17.831 ms] -1.345 ms (-7.1%)
iast 17.621 ms [17.447 ms, 17.795 ms] -1.381 ms (-7.3%)
profiling 18.314 ms [18.129 ms, 18.498 ms] -687.949 µs (-3.6%)
tracing 17.747 ms [17.569 ms, 17.926 ms] -1.255 ms (-6.6%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master dougqh/optiimize-gitiinfo
git_commit_date 1771357015 1771367122
git_commit_sha 7f66c79 f0560d1
release_version 1.60.0-SNAPSHOT~7f66c79293 1.60.0-SNAPSHOT~f0560d1735
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1771369163 1771369163
ci_job_id 1433767603 1433767603
ci_pipeline_id 97086436 97086436
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-18vjxedr 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-18vjxedr 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.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293
    dateFormat X
    axisFormat %s
section baseline
no_agent (14.944 s) : 14944000, 14944000
.   : milestone, 14944000,
appsec (15.141 s) : 15141000, 15141000
.   : milestone, 15141000,
iast (18.361 s) : 18361000, 18361000
.   : milestone, 18361000,
iast_GLOBAL (18.024 s) : 18024000, 18024000
.   : milestone, 18024000,
profiling (15.085 s) : 15085000, 15085000
.   : milestone, 15085000,
tracing (14.572 s) : 14572000, 14572000
.   : milestone, 14572000,
section candidate
no_agent (15.563 s) : 15563000, 15563000
.   : milestone, 15563000,
appsec (14.795 s) : 14795000, 14795000
.   : milestone, 14795000,
iast (18.31 s) : 18310000, 18310000
.   : milestone, 18310000,
iast_GLOBAL (18.28 s) : 18280000, 18280000
.   : milestone, 18280000,
profiling (14.855 s) : 14855000, 14855000
.   : milestone, 14855000,
tracing (14.789 s) : 14789000, 14789000
.   : milestone, 14789000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 14.944 s [14.944 s, 14.944 s] -
appsec 15.141 s [15.141 s, 15.141 s] 197.0 ms (1.3%)
iast 18.361 s [18.361 s, 18.361 s] 3.417 s (22.9%)
iast_GLOBAL 18.024 s [18.024 s, 18.024 s] 3.08 s (20.6%)
profiling 15.085 s [15.085 s, 15.085 s] 141.0 ms (0.9%)
tracing 14.572 s [14.572 s, 14.572 s] -372.0 ms (-2.5%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.563 s [15.563 s, 15.563 s] -
appsec 14.795 s [14.795 s, 14.795 s] -768.0 ms (-4.9%)
iast 18.31 s [18.31 s, 18.31 s] 2.747 s (17.7%)
iast_GLOBAL 18.28 s [18.28 s, 18.28 s] 2.717 s (17.5%)
profiling 14.855 s [14.855 s, 14.855 s] -708.0 ms (-4.5%)
tracing 14.789 s [14.789 s, 14.789 s] -774.0 ms (-5.0%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~f0560d1735, baseline=1.60.0-SNAPSHOT~7f66c79293
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.483 ms) : 1471, 1494
.   : milestone, 1483,
appsec (3.78 ms) : 3564, 3997
.   : milestone, 3780,
iast (2.267 ms) : 2197, 2336
.   : milestone, 2267,
iast_GLOBAL (2.314 ms) : 2245, 2384
.   : milestone, 2314,
profiling (2.103 ms) : 2046, 2159
.   : milestone, 2103,
tracing (2.079 ms) : 2025, 2133
.   : milestone, 2079,
section candidate
no_agent (1.476 ms) : 1464, 1487
.   : milestone, 1476,
appsec (3.816 ms) : 3593, 4039
.   : milestone, 3816,
iast (2.263 ms) : 2193, 2332
.   : milestone, 2263,
iast_GLOBAL (2.306 ms) : 2236, 2376
.   : milestone, 2306,
profiling (2.101 ms) : 2046, 2156
.   : milestone, 2101,
tracing (2.06 ms) : 2006, 2114
.   : milestone, 2060,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.483 ms [1.471 ms, 1.494 ms] -
appsec 3.78 ms [3.564 ms, 3.997 ms] 2.297 ms (154.9%)
iast 2.267 ms [2.197 ms, 2.336 ms] 784.067 µs (52.9%)
iast_GLOBAL 2.314 ms [2.245 ms, 2.384 ms] 831.664 µs (56.1%)
profiling 2.103 ms [2.046 ms, 2.159 ms] 620.05 µs (41.8%)
tracing 2.079 ms [2.025 ms, 2.133 ms] 596.006 µs (40.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.476 ms [1.464 ms, 1.487 ms] -
appsec 3.816 ms [3.593 ms, 4.039 ms] 2.34 ms (158.6%)
iast 2.263 ms [2.193 ms, 2.332 ms] 786.988 µs (53.3%)
iast_GLOBAL 2.306 ms [2.236 ms, 2.376 ms] 830.22 µs (56.3%)
profiling 2.101 ms [2.046 ms, 2.156 ms] 625.309 µs (42.4%)
tracing 2.06 ms [2.006 ms, 2.114 ms] 584.483 µs (39.6%)

@dougqh
Copy link
Contributor Author

dougqh commented Feb 17, 2026

Interesting, I wonder if it's related to the large use of nested lambdas inside buildGitInfo?

EDIT: I'm wondering if it might be because buildGitInfo is not stateless, so the JVM doesn't cache the reference (https://stackoverflow.com/a/23991339)

Yes, very likely. We could also solve this by making DDCache have a routine that takes an extra context argument.
Then we could do DDCache.computeIfAbsent(this, key, (thiz, key) -> thiz.buiildContextIInfo(key))

@cit-pr-commenter-54b7da
Copy link

Test Environment - sonar-java

Job Status: success

Scenario Overhead (%)
agent 8.30
agentless 40.10
agentlessCodeCoverage 67.70
agentlessLineCoverage 130.53

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

Labels

comp: ci visibility Continuous Integration Visibility tag: performance Performance related changes type: enhancement Enhancements and improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants