-
Notifications
You must be signed in to change notification settings - Fork 323
Introducing TagMap EntryReader #10339
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
EntryIterator and EntryChangeIterator are arguably redundant
|
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
BenchmarksStartupParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 56 metrics, 8 unstable metrics.
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.084 s) : 0, 1083629
Total [baseline] (10.807 s) : 0, 10807236
Agent [candidate] (1.093 s) : 0, 1092890
Total [candidate] (10.784 s) : 0, 10784449
section appsec
Agent [baseline] (1.269 s) : 0, 1268775
Total [baseline] (10.984 s) : 0, 10984317
Agent [candidate] (1.268 s) : 0, 1267656
Total [candidate] (10.995 s) : 0, 10994630
section iast
Agent [baseline] (1.226 s) : 0, 1225509
Total [baseline] (11.184 s) : 0, 11183713
Agent [candidate] (1.233 s) : 0, 1232523
Total [candidate] (11.303 s) : 0, 11302744
section profiling
Agent [baseline] (1.213 s) : 0, 1212687
Total [baseline] (11.006 s) : 0, 11005928
Agent [candidate] (1.208 s) : 0, 1207570
Total [candidate] (10.918 s) : 0, 10917793
gantt
title petclinic - break down per module: candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.193 ms) : 0, 1193
crashtracking [candidate] (1.193 ms) : 0, 1193
BytebuddyAgent [baseline] (650.634 ms) : 0, 650634
BytebuddyAgent [candidate] (656.367 ms) : 0, 656367
GlobalTracer [baseline] (282.54 ms) : 0, 282540
GlobalTracer [candidate] (284.939 ms) : 0, 284939
AppSec [baseline] (32.557 ms) : 0, 32557
AppSec [candidate] (32.862 ms) : 0, 32862
Debugger [baseline] (67.717 ms) : 0, 67717
Debugger [candidate] (68.477 ms) : 0, 68477
Remote Config [baseline] (632.818 µs) : 0, 633
Remote Config [candidate] (623.929 µs) : 0, 624
Telemetry [baseline] (8.929 ms) : 0, 8929
Telemetry [candidate] (8.918 ms) : 0, 8918
Flare Poller [baseline] (3.803 ms) : 0, 3803
Flare Poller [candidate] (3.776 ms) : 0, 3776
section appsec
crashtracking [baseline] (1.186 ms) : 0, 1186
crashtracking [candidate] (1.185 ms) : 0, 1185
BytebuddyAgent [baseline] (692.314 ms) : 0, 692314
BytebuddyAgent [candidate] (691.944 ms) : 0, 691944
GlobalTracer [baseline] (259.375 ms) : 0, 259375
GlobalTracer [candidate] (259.668 ms) : 0, 259668
AppSec [baseline] (171.85 ms) : 0, 171850
AppSec [candidate] (172.441 ms) : 0, 172441
Debugger [baseline] (70.116 ms) : 0, 70116
Debugger [candidate] (68.746 ms) : 0, 68746
Remote Config [baseline] (770.185 µs) : 0, 770
Remote Config [candidate] (779.316 µs) : 0, 779
Telemetry [baseline] (9.369 ms) : 0, 9369
Telemetry [candidate] (9.282 ms) : 0, 9282
Flare Poller [baseline] (3.712 ms) : 0, 3712
Flare Poller [candidate] (3.691 ms) : 0, 3691
IAST [baseline] (24.524 ms) : 0, 24524
IAST [candidate] (24.456 ms) : 0, 24456
section iast
crashtracking [baseline] (1.19 ms) : 0, 1190
crashtracking [candidate] (1.19 ms) : 0, 1190
BytebuddyAgent [baseline] (791.86 ms) : 0, 791860
BytebuddyAgent [candidate] (795.962 ms) : 0, 795962
GlobalTracer [baseline] (257.026 ms) : 0, 257026
GlobalTracer [candidate] (258.619 ms) : 0, 258619
AppSec [baseline] (34.689 ms) : 0, 34689
AppSec [candidate] (33.064 ms) : 0, 33064
Debugger [baseline] (65.546 ms) : 0, 65546
Debugger [candidate] (68.054 ms) : 0, 68054
Remote Config [baseline] (547.248 µs) : 0, 547
Remote Config [candidate] (555.34 µs) : 0, 555
Telemetry [baseline] (8.457 ms) : 0, 8457
Telemetry [candidate] (8.574 ms) : 0, 8574
Flare Poller [baseline] (3.603 ms) : 0, 3603
Flare Poller [candidate] (3.579 ms) : 0, 3579
IAST [baseline] (27.105 ms) : 0, 27105
IAST [candidate] (27.33 ms) : 0, 27330
section profiling
ProfilingAgent [baseline] (97.115 ms) : 0, 97115
ProfilingAgent [candidate] (97.433 ms) : 0, 97433
crashtracking [baseline] (1.221 ms) : 0, 1221
crashtracking [candidate] (1.222 ms) : 0, 1222
BytebuddyAgent [baseline] (704.412 ms) : 0, 704412
BytebuddyAgent [candidate] (703.455 ms) : 0, 703455
GlobalTracer [baseline] (223.919 ms) : 0, 223919
GlobalTracer [candidate] (221.578 ms) : 0, 221578
AppSec [baseline] (32.99 ms) : 0, 32990
AppSec [candidate] (32.083 ms) : 0, 32083
Debugger [baseline] (69.434 ms) : 0, 69434
Debugger [candidate] (68.291 ms) : 0, 68291
Remote Config [baseline] (640.339 µs) : 0, 640
Remote Config [candidate] (624.971 µs) : 0, 625
Telemetry [baseline] (9.064 ms) : 0, 9064
Telemetry [candidate] (8.952 ms) : 0, 8952
Flare Poller [baseline] (3.82 ms) : 0, 3820
Flare Poller [candidate] (3.744 ms) : 0, 3744
Profiling [baseline] (97.691 ms) : 0, 97691
Profiling [candidate] (98.011 ms) : 0, 98011
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.095 s) : 0, 1094718
Total [baseline] (8.766 s) : 0, 8766350
Agent [candidate] (1.093 s) : 0, 1093017
Total [candidate] (8.815 s) : 0, 8814982
section iast
Agent [baseline] (1.231 s) : 0, 1231455
Total [baseline] (9.368 s) : 0, 9367662
Agent [candidate] (1.224 s) : 0, 1223920
Total [candidate] (9.323 s) : 0, 9323482
gantt
title insecure-bank - break down per module: candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.204 ms) : 0, 1204
crashtracking [candidate] (1.21 ms) : 0, 1210
BytebuddyAgent [baseline] (657.815 ms) : 0, 657815
BytebuddyAgent [candidate] (656.782 ms) : 0, 656782
GlobalTracer [baseline] (285.735 ms) : 0, 285735
GlobalTracer [candidate] (285.184 ms) : 0, 285184
AppSec [baseline] (33.133 ms) : 0, 33133
AppSec [candidate] (33.132 ms) : 0, 33132
Debugger [baseline] (67.759 ms) : 0, 67759
Debugger [candidate] (67.256 ms) : 0, 67256
Remote Config [baseline] (644.596 µs) : 0, 645
Remote Config [candidate] (690.155 µs) : 0, 690
Telemetry [baseline] (8.875 ms) : 0, 8875
Telemetry [candidate] (9.078 ms) : 0, 9078
Flare Poller [baseline] (3.78 ms) : 0, 3780
Flare Poller [candidate] (3.819 ms) : 0, 3819
section iast
crashtracking [baseline] (1.192 ms) : 0, 1192
crashtracking [candidate] (1.2 ms) : 0, 1200
BytebuddyAgent [baseline] (796.225 ms) : 0, 796225
BytebuddyAgent [candidate] (792.102 ms) : 0, 792102
GlobalTracer [baseline] (258.089 ms) : 0, 258089
GlobalTracer [candidate] (256.796 ms) : 0, 256796
IAST [baseline] (27.17 ms) : 0, 27170
IAST [candidate] (27.055 ms) : 0, 27055
AppSec [baseline] (32.294 ms) : 0, 32294
AppSec [candidate] (35.128 ms) : 0, 35128
Debugger [baseline] (68.252 ms) : 0, 68252
Debugger [candidate] (63.618 ms) : 0, 63618
Remote Config [baseline] (562.839 µs) : 0, 563
Remote Config [candidate] (577.835 µs) : 0, 578
Telemetry [baseline] (8.379 ms) : 0, 8379
Telemetry [candidate] (8.413 ms) : 0, 8413
Flare Poller [baseline] (3.553 ms) : 0, 3553
Flare Poller [candidate] (3.534 ms) : 0, 3534
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 2 performance regressions! Performance is the same for 18 metrics, 16 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section baseline
no_agent (17.855 ms) : 17675, 18034
. : milestone, 17855,
appsec (18.504 ms) : 18316, 18692
. : milestone, 18504,
code_origins (17.564 ms) : 17390, 17738
. : milestone, 17564,
iast (17.577 ms) : 17403, 17752
. : milestone, 17577,
profiling (18.443 ms) : 18260, 18626
. : milestone, 18443,
tracing (17.798 ms) : 17623, 17973
. : milestone, 17798,
section candidate
no_agent (18.145 ms) : 17960, 18331
. : milestone, 18145,
appsec (18.571 ms) : 18384, 18758
. : milestone, 18571,
code_origins (17.597 ms) : 17424, 17770
. : milestone, 17597,
iast (17.514 ms) : 17341, 17687
. : milestone, 17514,
profiling (18.703 ms) : 18513, 18892
. : milestone, 18703,
tracing (18.592 ms) : 18404, 18780
. : milestone, 18592,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section baseline
no_agent (1.205 ms) : 1193, 1216
. : milestone, 1205,
iast (3.257 ms) : 3210, 3304
. : milestone, 3257,
iast_FULL (5.693 ms) : 5636, 5749
. : milestone, 5693,
iast_GLOBAL (3.631 ms) : 3586, 3675
. : milestone, 3631,
profiling (1.961 ms) : 1942, 1979
. : milestone, 1961,
tracing (1.78 ms) : 1766, 1795
. : milestone, 1780,
section candidate
no_agent (1.17 ms) : 1159, 1182
. : milestone, 1170,
iast (3.28 ms) : 3236, 3323
. : milestone, 3280,
iast_FULL (5.875 ms) : 5815, 5934
. : milestone, 5875,
iast_GLOBAL (3.696 ms) : 3635, 3757
. : milestone, 3696,
profiling (1.978 ms) : 1961, 1995
. : milestone, 1978,
tracing (1.834 ms) : 1819, 1850
. : milestone, 1834,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 10 metrics, 2 unstable metrics. Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section baseline
no_agent (15.501 s) : 15501000, 15501000
. : milestone, 15501000,
appsec (14.899 s) : 14899000, 14899000
. : milestone, 14899000,
iast (17.858 s) : 17858000, 17858000
. : milestone, 17858000,
iast_GLOBAL (18.03 s) : 18030000, 18030000
. : milestone, 18030000,
profiling (14.954 s) : 14954000, 14954000
. : milestone, 14954000,
tracing (14.577 s) : 14577000, 14577000
. : milestone, 14577000,
section candidate
no_agent (15.464 s) : 15464000, 15464000
. : milestone, 15464000,
appsec (14.771 s) : 14771000, 14771000
. : milestone, 14771000,
iast (18.31 s) : 18310000, 18310000
. : milestone, 18310000,
iast_GLOBAL (17.735 s) : 17735000, 17735000
. : milestone, 17735000,
profiling (14.843 s) : 14843000, 14843000
. : milestone, 14843000,
tracing (14.861 s) : 14861000, 14861000
. : milestone, 14861000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.59.0-SNAPSHOT~43bbea18a8, baseline=1.59.0-SNAPSHOT~c072939fa1
dateFormat X
axisFormat %s
section baseline
no_agent (1.478 ms) : 1466, 1489
. : milestone, 1478,
appsec (2.474 ms) : 2422, 2526
. : milestone, 2474,
iast (2.213 ms) : 2148, 2278
. : milestone, 2213,
iast_GLOBAL (2.258 ms) : 2193, 2324
. : milestone, 2258,
profiling (2.479 ms) : 2316, 2642
. : milestone, 2479,
tracing (2.046 ms) : 1994, 2097
. : milestone, 2046,
section candidate
no_agent (1.474 ms) : 1463, 1486
. : milestone, 1474,
appsec (3.717 ms) : 3497, 3936
. : milestone, 3717,
iast (2.211 ms) : 2146, 2277
. : milestone, 2211,
iast_GLOBAL (2.273 ms) : 2207, 2339
. : milestone, 2273,
profiling (2.079 ms) : 2024, 2133
. : milestone, 2079,
tracing (2.057 ms) : 2005, 2108
. : milestone, 2057,
|
What Does This Do
Introduces EntryReader as a low allocation means to traverse either a LegacyTagMap or an OptimizedTagMap
TagMap now extends Iterable<EntryReader> rather than Iterable<Entry>
Motivation
EntryReader provides a way to traverse a map with minimal allocation - avoiding the need to create specialized code that is optimal for each map type
In a future change, this capability will be used in the serializers to reduce overhead for OptimizedTagMap without introducing two pieces of code to maintain (one for each map)
Additional Notes
LegacyTagMap reuses a EntryReadingHelper which is updating each time the Iterator advances or the Entry changes in a forEach method. EntryReadingHelper uses TagValueConversions to help unbox / convert objects as needed.
OptimizedTagMap continues to pass the Entry object directly, since Entry objects are EntryReaders.
Contributor Checklist
type:and (comp:orinst:) labels in addition to any useful labelsclose,fixor any linking keywords when referencing an issue.Use
solvesinstead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]