Using forEach to avoid Iterator allocation#10830
Using forEach to avoid Iterator allocation#10830gh-worker-dd-mergequeue-cf854d[bot] merged 5 commits intomasterfrom
Conversation
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 65 metrics, 6 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.059 s) : 0, 1059141
Total [baseline] (8.845 s) : 0, 8844794
Agent [candidate] (1.058 s) : 0, 1057765
Total [candidate] (8.817 s) : 0, 8816519
section iast
Agent [baseline] (1.225 s) : 0, 1224891
Total [baseline] (9.557 s) : 0, 9556880
Agent [candidate] (1.225 s) : 0, 1225207
Total [candidate] (9.556 s) : 0, 9555973
gantt
title insecure-bank - break down per module: candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.203 ms) : 0, 1203
crashtracking [candidate] (1.198 ms) : 0, 1198
BytebuddyAgent [baseline] (628.547 ms) : 0, 628547
BytebuddyAgent [candidate] (627.002 ms) : 0, 627002
AgentMeter [baseline] (29.116 ms) : 0, 29116
AgentMeter [candidate] (28.904 ms) : 0, 28904
GlobalTracer [baseline] (256.566 ms) : 0, 256566
GlobalTracer [candidate] (256.496 ms) : 0, 256496
AppSec [baseline] (31.609 ms) : 0, 31609
AppSec [candidate] (31.603 ms) : 0, 31603
Debugger [baseline] (59.21 ms) : 0, 59210
Debugger [candidate] (59.234 ms) : 0, 59234
Remote Config [baseline] (592.826 µs) : 0, 593
Remote Config [candidate] (584.464 µs) : 0, 584
Telemetry [baseline] (8.06 ms) : 0, 8060
Telemetry [candidate] (8.068 ms) : 0, 8068
Flare Poller [baseline] (8.057 ms) : 0, 8057
Flare Poller [candidate] (8.692 ms) : 0, 8692
section iast
crashtracking [baseline] (1.206 ms) : 0, 1206
crashtracking [candidate] (1.206 ms) : 0, 1206
BytebuddyAgent [baseline] (794.19 ms) : 0, 794190
BytebuddyAgent [candidate] (795.082 ms) : 0, 795082
AgentMeter [baseline] (11.312 ms) : 0, 11312
AgentMeter [candidate] (11.359 ms) : 0, 11359
GlobalTracer [baseline] (247.175 ms) : 0, 247175
GlobalTracer [candidate] (247.141 ms) : 0, 247141
AppSec [baseline] (26.418 ms) : 0, 26418
AppSec [candidate] (26.322 ms) : 0, 26322
Debugger [baseline] (70.046 ms) : 0, 70046
Debugger [candidate] (69.835 ms) : 0, 69835
Remote Config [baseline] (533.027 µs) : 0, 533
Remote Config [candidate] (521.978 µs) : 0, 522
Telemetry [baseline] (9.203 ms) : 0, 9203
Telemetry [candidate] (9.121 ms) : 0, 9121
Flare Poller [baseline] (3.314 ms) : 0, 3314
Flare Poller [candidate] (3.319 ms) : 0, 3319
IAST [baseline] (25.307 ms) : 0, 25307
IAST [candidate] (25.262 ms) : 0, 25262
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.059 s) : 0, 1058664
Total [baseline] (11.016 s) : 0, 11016058
Agent [candidate] (1.057 s) : 0, 1056912
Total [candidate] (11.053 s) : 0, 11052997
section appsec
Agent [baseline] (1.247 s) : 0, 1246782
Total [baseline] (11.334 s) : 0, 11334077
Agent [candidate] (1.245 s) : 0, 1244992
Total [candidate] (11.243 s) : 0, 11242878
section iast
Agent [baseline] (1.225 s) : 0, 1224807
Total [baseline] (11.33 s) : 0, 11329804
Agent [candidate] (1.225 s) : 0, 1225460
Total [candidate] (11.382 s) : 0, 11381766
section profiling
Agent [baseline] (1.184 s) : 0, 1183640
Total [baseline] (11.134 s) : 0, 11133904
Agent [candidate] (1.182 s) : 0, 1181887
Total [candidate] (11.043 s) : 0, 11043038
gantt
title petclinic - break down per module: candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.204 ms) : 0, 1204
crashtracking [candidate] (1.191 ms) : 0, 1191
BytebuddyAgent [baseline] (627.654 ms) : 0, 627654
BytebuddyAgent [candidate] (626.776 ms) : 0, 626776
AgentMeter [baseline] (29.078 ms) : 0, 29078
AgentMeter [candidate] (28.97 ms) : 0, 28970
GlobalTracer [baseline] (256.81 ms) : 0, 256810
GlobalTracer [candidate] (256.637 ms) : 0, 256637
AppSec [baseline] (31.622 ms) : 0, 31622
AppSec [candidate] (31.54 ms) : 0, 31540
Debugger [baseline] (60.176 ms) : 0, 60176
Debugger [candidate] (59.953 ms) : 0, 59953
Remote Config [baseline] (596.253 µs) : 0, 596
Remote Config [candidate] (586.791 µs) : 0, 587
Telemetry [baseline] (8.086 ms) : 0, 8086
Telemetry [candidate] (7.999 ms) : 0, 7999
Flare Poller [baseline] (7.383 ms) : 0, 7383
Flare Poller [candidate] (7.257 ms) : 0, 7257
section appsec
crashtracking [baseline] (1.194 ms) : 0, 1194
crashtracking [candidate] (1.193 ms) : 0, 1193
BytebuddyAgent [baseline] (657.84 ms) : 0, 657840
BytebuddyAgent [candidate] (656.752 ms) : 0, 656752
AgentMeter [baseline] (12.04 ms) : 0, 12040
AgentMeter [candidate] (12.042 ms) : 0, 12042
GlobalTracer [baseline] (258.308 ms) : 0, 258308
GlobalTracer [candidate] (257.754 ms) : 0, 257754
AppSec [baseline] (177.864 ms) : 0, 177864
AppSec [candidate] (177.803 ms) : 0, 177803
Debugger [baseline] (66.368 ms) : 0, 66368
Debugger [candidate] (66.391 ms) : 0, 66391
Remote Config [baseline] (626.09 µs) : 0, 626
Remote Config [candidate] (615.693 µs) : 0, 616
Telemetry [baseline] (8.403 ms) : 0, 8403
Telemetry [candidate] (8.324 ms) : 0, 8324
Flare Poller [baseline] (3.637 ms) : 0, 3637
Flare Poller [candidate] (3.653 ms) : 0, 3653
IAST [baseline] (24.185 ms) : 0, 24185
IAST [candidate] (24.136 ms) : 0, 24136
section iast
crashtracking [baseline] (1.222 ms) : 0, 1222
crashtracking [candidate] (1.185 ms) : 0, 1185
BytebuddyAgent [baseline] (793.937 ms) : 0, 793937
BytebuddyAgent [candidate] (794.436 ms) : 0, 794436
AgentMeter [baseline] (11.304 ms) : 0, 11304
AgentMeter [candidate] (11.342 ms) : 0, 11342
GlobalTracer [baseline] (246.782 ms) : 0, 246782
GlobalTracer [candidate] (246.648 ms) : 0, 246648
AppSec [baseline] (26.496 ms) : 0, 26496
AppSec [candidate] (27.309 ms) : 0, 27309
Debugger [baseline] (70.658 ms) : 0, 70658
Debugger [candidate] (70.038 ms) : 0, 70038
Remote Config [baseline] (531.688 µs) : 0, 532
Remote Config [candidate] (531.171 µs) : 0, 531
Telemetry [baseline] (9.171 ms) : 0, 9171
Telemetry [candidate] (9.256 ms) : 0, 9256
Flare Poller [baseline] (3.331 ms) : 0, 3331
Flare Poller [candidate] (3.413 ms) : 0, 3413
IAST [baseline] (25.26 ms) : 0, 25260
IAST [candidate] (25.269 ms) : 0, 25269
section profiling
crashtracking [baseline] (1.178 ms) : 0, 1178
crashtracking [candidate] (1.167 ms) : 0, 1167
BytebuddyAgent [baseline] (683.494 ms) : 0, 683494
BytebuddyAgent [candidate] (683.004 ms) : 0, 683004
AgentMeter [baseline] (8.634 ms) : 0, 8634
AgentMeter [candidate] (8.607 ms) : 0, 8607
GlobalTracer [baseline] (215.458 ms) : 0, 215458
GlobalTracer [candidate] (215.158 ms) : 0, 215158
AppSec [baseline] (32.254 ms) : 0, 32254
AppSec [candidate] (32.227 ms) : 0, 32227
Debugger [baseline] (64.624 ms) : 0, 64624
Debugger [candidate] (62.077 ms) : 0, 62077
Remote Config [baseline] (589.079 µs) : 0, 589
Remote Config [candidate] (582.236 µs) : 0, 582
Telemetry [baseline] (8.434 ms) : 0, 8434
Telemetry [candidate] (9.976 ms) : 0, 9976
Flare Poller [baseline] (4.23 ms) : 0, 4230
Flare Poller [candidate] (5.026 ms) : 0, 5026
ProfilingAgent [baseline] (93.895 ms) : 0, 93895
ProfilingAgent [candidate] (93.414 ms) : 0, 93414
Profiling [baseline] (94.462 ms) : 0, 94462
Profiling [candidate] (93.972 ms) : 0, 93972
LoadParameters
See matching parameters
SummaryFound 3 performance improvements and 2 performance regressions! Performance is the same for 16 metrics, 15 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section baseline
no_agent (1.203 ms) : 1191, 1215
. : milestone, 1203,
iast (3.113 ms) : 3076, 3151
. : milestone, 3113,
iast_FULL (5.943 ms) : 5883, 6003
. : milestone, 5943,
iast_GLOBAL (3.616 ms) : 3557, 3676
. : milestone, 3616,
profiling (2.224 ms) : 2203, 2245
. : milestone, 2224,
tracing (1.778 ms) : 1764, 1792
. : milestone, 1778,
section candidate
no_agent (1.191 ms) : 1179, 1203
. : milestone, 1191,
iast (3.346 ms) : 3296, 3395
. : milestone, 3346,
iast_FULL (6.035 ms) : 5972, 6097
. : milestone, 6035,
iast_GLOBAL (3.634 ms) : 3573, 3695
. : milestone, 3634,
profiling (1.962 ms) : 1944, 1979
. : milestone, 1962,
tracing (1.835 ms) : 1819, 1851
. : milestone, 1835,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section baseline
no_agent (19.148 ms) : 18949, 19347
. : milestone, 19148,
appsec (18.486 ms) : 18296, 18675
. : milestone, 18486,
code_origins (17.507 ms) : 17332, 17682
. : milestone, 17507,
iast (17.746 ms) : 17569, 17922
. : milestone, 17746,
profiling (18.609 ms) : 18426, 18793
. : milestone, 18609,
tracing (17.771 ms) : 17591, 17952
. : milestone, 17771,
section candidate
no_agent (17.164 ms) : 16994, 17335
. : milestone, 17164,
appsec (18.512 ms) : 18325, 18698
. : milestone, 18512,
code_origins (17.706 ms) : 17534, 17877
. : milestone, 17706,
iast (17.485 ms) : 17310, 17661
. : milestone, 17485,
profiling (19.371 ms) : 19183, 19559
. : milestone, 19371,
tracing (17.62 ms) : 17447, 17792
. : milestone, 17620,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 11 metrics, 1 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section baseline
no_agent (14.996 s) : 14996000, 14996000
. : milestone, 14996000,
appsec (14.596 s) : 14596000, 14596000
. : milestone, 14596000,
iast (18.04 s) : 18040000, 18040000
. : milestone, 18040000,
iast_GLOBAL (18.006 s) : 18006000, 18006000
. : milestone, 18006000,
profiling (15.069 s) : 15069000, 15069000
. : milestone, 15069000,
tracing (14.863 s) : 14863000, 14863000
. : milestone, 14863000,
section candidate
no_agent (15.763 s) : 15763000, 15763000
. : milestone, 15763000,
appsec (14.722 s) : 14722000, 14722000
. : milestone, 14722000,
iast (18.314 s) : 18314000, 18314000
. : milestone, 18314000,
iast_GLOBAL (17.883 s) : 17883000, 17883000
. : milestone, 17883000,
profiling (14.684 s) : 14684000, 14684000
. : milestone, 14684000,
tracing (14.888 s) : 14888000, 14888000
. : milestone, 14888000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.61.0-SNAPSHOT~68cc165a41, baseline=1.61.0-SNAPSHOT~99d47ca835
dateFormat X
axisFormat %s
section baseline
no_agent (1.481 ms) : 1469, 1492
. : milestone, 1481,
appsec (3.795 ms) : 3576, 4015
. : milestone, 3795,
iast (2.262 ms) : 2193, 2330
. : milestone, 2262,
iast_GLOBAL (2.298 ms) : 2229, 2367
. : milestone, 2298,
profiling (2.111 ms) : 2054, 2168
. : milestone, 2111,
tracing (2.061 ms) : 2008, 2114
. : milestone, 2061,
section candidate
no_agent (1.478 ms) : 1466, 1490
. : milestone, 1478,
appsec (3.812 ms) : 3591, 4032
. : milestone, 3812,
iast (2.258 ms) : 2189, 2327
. : milestone, 2258,
iast_GLOBAL (2.302 ms) : 2233, 2372
. : milestone, 2302,
profiling (2.082 ms) : 2027, 2137
. : milestone, 2082,
tracing (2.069 ms) : 2016, 2123
. : milestone, 2069,
|
|
In a separate PR, I'm going to try to create a benchmark to show why this happens. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
PR can't be merged according to github policy |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
What Does This Do
Use forEach in CoreTracer.write to avoid ArrayList$Itr allocation
Motivation
In span creation stress test: 16 threads x 10,000,000 traces x 2 spans, saves 5 GiB of allocation
Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]
Note: Once your PR is ready to merge, add it to the merge queue by commenting
/merge./merge -ccancels 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.