Collections JMH Benchmarks#10674
Collections JMH Benchmarks#10674gh-worker-dd-mergequeue-cf854d[bot] merged 15 commits intomasterfrom
Conversation
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
| @Fork(2) | ||
| @Warmup(iterations = 2) | ||
| @Measurement(iterations = 3) | ||
| @Threads(8) |
There was a problem hiding this comment.
I've chosen to run the benchmarks with 8 threads because I found that the total system impact was often hidden when only using a single thread.
With 8 threads, solutions that perform more allocation tend to fall behind because of stop-the-world pauses caused by garbage collection.
The thinking is that in a real world system, the tracer is often running inside many application threads, so designing for many threads typically makes sense.
| * common situation where the JIT's escape analysis is unable to elide the var-arg array allocation. | ||
| * | ||
| * | ||
| * <ul> |
There was a problem hiding this comment.
Tweaked this benchmark to match comment to adhere to the same format as the others
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 67 metrics, 4 unstable metrics. Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.058 s) : 0, 1058473
Total [baseline] (8.819 s) : 0, 8818779
Agent [candidate] (1.058 s) : 0, 1058365
Total [candidate] (8.802 s) : 0, 8802221
section iast
Agent [baseline] (1.227 s) : 0, 1226760
Total [baseline] (9.566 s) : 0, 9565890
Agent [candidate] (1.225 s) : 0, 1225211
Total [candidate] (9.53 s) : 0, 9529871
gantt
title insecure-bank - break down per module: candidate=1.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.21 ms) : 0, 1210
crashtracking [candidate] (1.192 ms) : 0, 1192
BytebuddyAgent [baseline] (627.063 ms) : 0, 627063
BytebuddyAgent [candidate] (626.988 ms) : 0, 626988
AgentMeter [baseline] (29.044 ms) : 0, 29044
AgentMeter [candidate] (28.989 ms) : 0, 28989
GlobalTracer [baseline] (256.659 ms) : 0, 256659
GlobalTracer [candidate] (257.146 ms) : 0, 257146
AppSec [baseline] (31.674 ms) : 0, 31674
AppSec [candidate] (31.634 ms) : 0, 31634
Debugger [baseline] (59.459 ms) : 0, 59459
Debugger [candidate] (59.267 ms) : 0, 59267
Remote Config [baseline] (590.245 µs) : 0, 590
Remote Config [candidate] (586.737 µs) : 0, 587
Telemetry [baseline] (8.01 ms) : 0, 8010
Telemetry [candidate] (8.028 ms) : 0, 8028
Flare Poller [baseline] (8.755 ms) : 0, 8755
Flare Poller [candidate] (8.571 ms) : 0, 8571
section iast
crashtracking [baseline] (1.195 ms) : 0, 1195
crashtracking [candidate] (1.19 ms) : 0, 1190
BytebuddyAgent [baseline] (795.052 ms) : 0, 795052
BytebuddyAgent [candidate] (794.838 ms) : 0, 794838
AgentMeter [baseline] (11.321 ms) : 0, 11321
AgentMeter [candidate] (11.285 ms) : 0, 11285
GlobalTracer [baseline] (247.319 ms) : 0, 247319
GlobalTracer [candidate] (247.084 ms) : 0, 247084
AppSec [baseline] (26.523 ms) : 0, 26523
AppSec [candidate] (26.506 ms) : 0, 26506
Debugger [baseline] (70.729 ms) : 0, 70729
Debugger [candidate] (70.146 ms) : 0, 70146
Remote Config [baseline] (536.074 µs) : 0, 536
Remote Config [candidate] (516.212 µs) : 0, 516
Telemetry [baseline] (9.229 ms) : 0, 9229
Telemetry [candidate] (9.136 ms) : 0, 9136
Flare Poller [baseline] (3.364 ms) : 0, 3364
Flare Poller [candidate] (3.285 ms) : 0, 3285
IAST [baseline] (25.338 ms) : 0, 25338
IAST [candidate] (25.282 ms) : 0, 25282
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.071 s) : 0, 1070744
Total [baseline] (11.002 s) : 0, 11001780
Agent [candidate] (1.063 s) : 0, 1062576
Total [candidate] (11.009 s) : 0, 11009493
section appsec
Agent [baseline] (1.251 s) : 0, 1250861
Total [baseline] (11.196 s) : 0, 11196409
Agent [candidate] (1.253 s) : 0, 1252926
Total [candidate] (11.209 s) : 0, 11209013
section iast
Agent [baseline] (1.227 s) : 0, 1226940
Total [baseline] (11.42 s) : 0, 11420128
Agent [candidate] (1.227 s) : 0, 1226991
Total [candidate] (11.316 s) : 0, 11315794
section profiling
Agent [baseline] (1.181 s) : 0, 1181292
Total [baseline] (11.072 s) : 0, 11071717
Agent [candidate] (1.18 s) : 0, 1179877
Total [candidate] (11.056 s) : 0, 11055936
gantt
title petclinic - break down per module: candidate=1.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.222 ms) : 0, 1222
crashtracking [candidate] (1.197 ms) : 0, 1197
BytebuddyAgent [baseline] (633.044 ms) : 0, 633044
BytebuddyAgent [candidate] (628.925 ms) : 0, 628925
AgentMeter [baseline] (29.412 ms) : 0, 29412
AgentMeter [candidate] (29.133 ms) : 0, 29133
GlobalTracer [baseline] (258.672 ms) : 0, 258672
GlobalTracer [candidate] (257.299 ms) : 0, 257299
AppSec [baseline] (31.888 ms) : 0, 31888
AppSec [candidate] (31.608 ms) : 0, 31608
Debugger [baseline] (60.53 ms) : 0, 60530
Debugger [candidate] (60.184 ms) : 0, 60184
Remote Config [baseline] (598.355 µs) : 0, 598
Remote Config [candidate] (592.042 µs) : 0, 592
Telemetry [baseline] (8.115 ms) : 0, 8115
Telemetry [candidate] (8.034 ms) : 0, 8034
Flare Poller [baseline] (11.14 ms) : 0, 11140
Flare Poller [candidate] (9.563 ms) : 0, 9563
section appsec
crashtracking [baseline] (1.187 ms) : 0, 1187
crashtracking [candidate] (1.205 ms) : 0, 1205
BytebuddyAgent [baseline] (659.969 ms) : 0, 659969
BytebuddyAgent [candidate] (662.217 ms) : 0, 662217
AgentMeter [baseline] (12.119 ms) : 0, 12119
AgentMeter [candidate] (12.063 ms) : 0, 12063
GlobalTracer [baseline] (259.685 ms) : 0, 259685
GlobalTracer [candidate] (259.428 ms) : 0, 259428
IAST [baseline] (24.436 ms) : 0, 24436
IAST [candidate] (24.417 ms) : 0, 24417
AppSec [baseline] (178.091 ms) : 0, 178091
AppSec [candidate] (177.929 ms) : 0, 177929
Debugger [baseline] (66.566 ms) : 0, 66566
Debugger [candidate] (66.639 ms) : 0, 66639
Remote Config [baseline] (612.284 µs) : 0, 612
Remote Config [candidate] (611.989 µs) : 0, 612
Telemetry [baseline] (8.376 ms) : 0, 8376
Telemetry [candidate] (8.436 ms) : 0, 8436
Flare Poller [baseline] (3.633 ms) : 0, 3633
Flare Poller [candidate] (3.683 ms) : 0, 3683
section iast
crashtracking [baseline] (1.184 ms) : 0, 1184
crashtracking [candidate] (1.182 ms) : 0, 1182
BytebuddyAgent [baseline] (794.907 ms) : 0, 794907
BytebuddyAgent [candidate] (795.116 ms) : 0, 795116
AgentMeter [baseline] (11.293 ms) : 0, 11293
AgentMeter [candidate] (11.34 ms) : 0, 11340
GlobalTracer [baseline] (247.31 ms) : 0, 247310
GlobalTracer [candidate] (247.303 ms) : 0, 247303
IAST [baseline] (25.386 ms) : 0, 25386
IAST [candidate] (25.333 ms) : 0, 25333
AppSec [baseline] (26.569 ms) : 0, 26569
AppSec [candidate] (26.519 ms) : 0, 26519
Debugger [baseline] (71.078 ms) : 0, 71078
Debugger [candidate] (71.034 ms) : 0, 71034
Remote Config [baseline] (535.254 µs) : 0, 535
Remote Config [candidate] (527.919 µs) : 0, 528
Telemetry [baseline] (9.264 ms) : 0, 9264
Telemetry [candidate] (9.291 ms) : 0, 9291
Flare Poller [baseline] (3.397 ms) : 0, 3397
Flare Poller [candidate] (3.382 ms) : 0, 3382
section profiling
crashtracking [baseline] (1.168 ms) : 0, 1168
crashtracking [candidate] (1.166 ms) : 0, 1166
BytebuddyAgent [baseline] (681.363 ms) : 0, 681363
BytebuddyAgent [candidate] (680.668 ms) : 0, 680668
AgentMeter [baseline] (8.663 ms) : 0, 8663
AgentMeter [candidate] (8.575 ms) : 0, 8575
GlobalTracer [baseline] (215.515 ms) : 0, 215515
GlobalTracer [candidate] (215.395 ms) : 0, 215395
AppSec [baseline] (32.318 ms) : 0, 32318
AppSec [candidate] (32.428 ms) : 0, 32428
Debugger [baseline] (62.803 ms) : 0, 62803
Debugger [candidate] (66.061 ms) : 0, 66061
Remote Config [baseline] (580.195 µs) : 0, 580
Remote Config [candidate] (573.444 µs) : 0, 573
Telemetry [baseline] (10.03 ms) : 0, 10030
Telemetry [candidate] (7.637 ms) : 0, 7637
Flare Poller [baseline] (4.243 ms) : 0, 4243
Flare Poller [candidate] (3.474 ms) : 0, 3474
ProfilingAgent [baseline] (94.01 ms) : 0, 94010
ProfilingAgent [candidate] (93.344 ms) : 0, 93344
Profiling [baseline] (94.576 ms) : 0, 94576
Profiling [candidate] (93.898 ms) : 0, 93898
LoadParameters
See matching parameters
SummaryFound 2 performance improvements and 1 performance regressions! Performance is the same for 17 metrics, 16 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section baseline
no_agent (1.19 ms) : 1178, 1202
. : milestone, 1190,
iast (3.141 ms) : 3099, 3183
. : milestone, 3141,
iast_FULL (5.722 ms) : 5665, 5779
. : milestone, 5722,
iast_GLOBAL (3.601 ms) : 3534, 3667
. : milestone, 3601,
profiling (2.17 ms) : 2150, 2190
. : milestone, 2170,
tracing (1.789 ms) : 1774, 1804
. : milestone, 1789,
section candidate
no_agent (1.163 ms) : 1152, 1175
. : milestone, 1163,
iast (3.292 ms) : 3243, 3340
. : milestone, 3292,
iast_FULL (5.824 ms) : 5765, 5882
. : milestone, 5824,
iast_GLOBAL (3.612 ms) : 3562, 3662
. : milestone, 3612,
profiling (2.08 ms) : 2060, 2100
. : milestone, 2080,
tracing (1.771 ms) : 1757, 1785
. : milestone, 1771,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section baseline
no_agent (19.197 ms) : 18998, 19396
. : milestone, 19197,
appsec (19.537 ms) : 19339, 19735
. : milestone, 19537,
code_origins (17.632 ms) : 17459, 17804
. : milestone, 17632,
iast (17.54 ms) : 17370, 17710
. : milestone, 17540,
profiling (18.69 ms) : 18503, 18878
. : milestone, 18690,
tracing (18.16 ms) : 17981, 18338
. : milestone, 18160,
section candidate
no_agent (17.095 ms) : 16928, 17263
. : milestone, 17095,
appsec (18.751 ms) : 18562, 18941
. : milestone, 18751,
code_origins (17.908 ms) : 17732, 18085
. : milestone, 17908,
iast (17.947 ms) : 17770, 18124
. : milestone, 17947,
profiling (18.938 ms) : 18747, 19128
. : milestone, 18938,
tracing (18.838 ms) : 18648, 19029
. : milestone, 18838,
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.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section baseline
no_agent (14.934 s) : 14934000, 14934000
. : milestone, 14934000,
appsec (14.991 s) : 14991000, 14991000
. : milestone, 14991000,
iast (18.119 s) : 18119000, 18119000
. : milestone, 18119000,
iast_GLOBAL (17.944 s) : 17944000, 17944000
. : milestone, 17944000,
profiling (14.848 s) : 14848000, 14848000
. : milestone, 14848000,
tracing (15.145 s) : 15145000, 15145000
. : milestone, 15145000,
section candidate
no_agent (15.004 s) : 15004000, 15004000
. : milestone, 15004000,
appsec (15.135 s) : 15135000, 15135000
. : milestone, 15135000,
iast (18.299 s) : 18299000, 18299000
. : milestone, 18299000,
iast_GLOBAL (17.905 s) : 17905000, 17905000
. : milestone, 17905000,
profiling (14.596 s) : 14596000, 14596000
. : milestone, 14596000,
tracing (14.954 s) : 14954000, 14954000
. : milestone, 14954000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.60.0-SNAPSHOT~06f307bd15, baseline=1.61.0-SNAPSHOT~e6b242f8b5
dateFormat X
axisFormat %s
section baseline
no_agent (1.476 ms) : 1464, 1487
. : milestone, 1476,
appsec (2.521 ms) : 2466, 2576
. : milestone, 2521,
iast (2.257 ms) : 2188, 2326
. : milestone, 2257,
iast_GLOBAL (2.303 ms) : 2234, 2373
. : milestone, 2303,
profiling (2.091 ms) : 2037, 2146
. : milestone, 2091,
tracing (2.059 ms) : 2005, 2112
. : milestone, 2059,
section candidate
no_agent (1.472 ms) : 1460, 1483
. : milestone, 1472,
appsec (3.818 ms) : 3596, 4039
. : milestone, 3818,
iast (2.25 ms) : 2181, 2319
. : milestone, 2250,
iast_GLOBAL (2.289 ms) : 2219, 2358
. : milestone, 2289,
profiling (2.104 ms) : 2048, 2161
. : milestone, 2104,
tracing (2.066 ms) : 2012, 2119
. : milestone, 2066,
|
amarziali
left a comment
There was a problem hiding this comment.
thanks. That would help for future choices. I believe this should be documented but I'm not sure we already have a good place for that kind of docs (could be helpful having a dedicated md page for that kind of perf things)
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
This PR is rejected because it was updated |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
This PR is rejected because it was updated |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
The merge request has been interrupted because the build 102047087 took longer than expected. The current limit for the base branch 'master' is 120 minutes. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
The merge request has been interrupted because the build 102345410 took longer than expected. The current limit for the base branch 'master' is 120 minutes. |
|
Not sure why |
That's weird. I'll look into it. |
|
@dougqh I think the only issue is with Btw the compilation task is |
Thanks, I'll take care of that. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
fc35e2e
into
master
What Does This Do
Benchmarks used to demonstrate most performant approach to common tracer programming problems
Each benchmark includes a header comment that includes benchmark results and the conclusions drawn from those results.
Motivation
The benchmarks are intended to serve as a reference for developers contributing to dd-java-agent.
The benchmarks are intended to be a living example that will be updated as new solutions are found / created.
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.