-
Notifications
You must be signed in to change notification settings - Fork 312
Initialise bytebuddy instrumentation in a new thread at bootstrap #9611
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
Conversation
51545ca
to
5a18a2a
Compare
🎯 Code Coverage 🔗 Commit SHA: d2e45f1 | Docs | Was this helpful? Give us feedback! |
BenchmarksStartupParameters
See matching parameters
SummaryFound 25 performance improvements and 13 performance regressions! Performance is the same for 17 metrics, 4 unstable metrics.
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.006 s) : 0, 1006192
Total [baseline] (10.685 s) : 0, 10684846
Agent [candidate] (764.026 ms) : 0, 764026
Total [candidate] (10.371 s) : 0, 10371103
section appsec
Agent [baseline] (1.192 s) : 0, 1191950
Total [baseline] (11.089 s) : 0, 11088972
Agent [candidate] (792.248 ms) : 0, 792248
Total [candidate] (10.636 s) : 0, 10635585
section iast
Agent [baseline] (1.153 s) : 0, 1152935
Total [baseline] (10.925 s) : 0, 10925484
Agent [candidate] (865.893 ms) : 0, 865893
Total [candidate] (10.853 s) : 0, 10853231
section profiling
Agent [baseline] (1.153 s) : 0, 1152905
Total [baseline] (10.974 s) : 0, 10974265
Agent [candidate] (839.057 ms) : 0, 839057
Total [candidate] (10.671 s) : 0, 10670640
gantt
title petclinic - break down per module: candidate=1.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.452 ms) : 0, 1452
crashtracking [candidate] (1.444 ms) : 0, 1444
BytebuddyAgent [baseline] (689.126 ms) : 0, 689126
BytebuddyAgent [candidate] (745.087 ms) : 0, 745087
GlobalTracer [baseline] (247.611 ms) : 0, 247611
GlobalTracer [candidate] (223.308 ms) : 0, 223308
AppSec [baseline] (30.92 ms) : 0, 30920
AppSec [candidate] (29.84 ms) : 0, 29840
Debugger [baseline] (6.334 ms) : 0, 6334
Debugger [candidate] (5.5 ms) : 0, 5500
Remote Config [baseline] (678.882 µs) : 0, 679
Remote Config [candidate] (684.465 µs) : 0, 684
Telemetry [baseline] (8.967 ms) : 0, 8967
Telemetry [candidate] (9.075 ms) : 0, 9075
section appsec
crashtracking [baseline] (1.461 ms) : 0, 1461
crashtracking [candidate] (1.459 ms) : 0, 1459
BytebuddyAgent [baseline] (715.229 ms) : 0, 715229
BytebuddyAgent [candidate] (773.12 ms) : 0, 773120
GlobalTracer [baseline] (240.511 ms) : 0, 240511
GlobalTracer [candidate] (223.251 ms) : 0, 223251
AppSec [baseline] (172.239 ms) : 0, 172239
AppSec [candidate] (158.01 ms) : 0, 158010
Debugger [baseline] (6.011 ms) : 0, 6011
Debugger [candidate] (5.626 ms) : 0, 5626
Remote Config [baseline] (644.693 µs) : 0, 645
Remote Config [candidate] (655.141 µs) : 0, 655
Telemetry [baseline] (9.989 ms) : 0, 9989
Telemetry [candidate] (8.826 ms) : 0, 8826
IAST [baseline] (24.738 ms) : 0, 24738
IAST [candidate] (23.275 ms) : 0, 23275
section iast
crashtracking [baseline] (1.467 ms) : 0, 1467
crashtracking [candidate] (1.47 ms) : 0, 1470
BytebuddyAgent [baseline] (816.939 ms) : 0, 816939
BytebuddyAgent [candidate] (846.628 ms) : 0, 846628
GlobalTracer [baseline] (238.084 ms) : 0, 238084
GlobalTracer [candidate] (225.075 ms) : 0, 225075
AppSec [baseline] (33.868 ms) : 0, 33868
AppSec [candidate] (29.244 ms) : 0, 29244
Debugger [baseline] (6.041 ms) : 0, 6041
Debugger [candidate] (5.6 ms) : 0, 5600
Remote Config [baseline] (589.84 µs) : 0, 590
Remote Config [candidate] (673.314 µs) : 0, 673
Telemetry [baseline] (8.256 ms) : 0, 8256
Telemetry [candidate] (9.36 ms) : 0, 9360
IAST [baseline] (26.251 ms) : 0, 26251
IAST [candidate] (26.593 ms) : 0, 26593
section profiling
ProfilingAgent [baseline] (100.795 ms) : 0, 100795
ProfilingAgent [candidate] (107.096 ms) : 0, 107096
crashtracking [baseline] (1.443 ms) : 0, 1443
crashtracking [candidate] (1.468 ms) : 0, 1468
BytebuddyAgent [baseline] (719.471 ms) : 0, 719471
BytebuddyAgent [candidate] (790.952 ms) : 0, 790952
GlobalTracer [baseline] (223.927 ms) : 0, 223927
GlobalTracer [candidate] (288.982 ms) : 0, 288982
AppSec [baseline] (31.322 ms) : 0, 31322
AppSec [candidate] (30.172 ms) : 0, 30172
Debugger [baseline] (6.519 ms) : 0, 6519
Debugger [candidate] (5.565 ms) : 0, 5565
Remote Config [baseline] (717.622 µs) : 0, 718
Remote Config [candidate] (686.608 µs) : 0, 687
Telemetry [baseline] (16.26 ms) : 0, 16260
Telemetry [candidate] (8.888 ms) : 0, 8888
Profiling [baseline] (101.379 ms) : 0, 101379
Profiling [candidate] (107.649 ms) : 0, 107649
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.011 s) : 0, 1010712
Total [baseline] (8.679 s) : 0, 8679315
Agent [candidate] (768.095 ms) : 0, 768095
Total [candidate] (8.416 s) : 0, 8415991
section iast
Agent [baseline] (1.154 s) : 0, 1153764
Total [baseline] (9.275 s) : 0, 9275108
Agent [candidate] (872.266 ms) : 0, 872266
Total [candidate] (9.056 s) : 0, 9055528
gantt
title insecure-bank - break down per module: candidate=1.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.468 ms) : 0, 1468
crashtracking [candidate] (1.479 ms) : 0, 1479
BytebuddyAgent [baseline] (691.922 ms) : 0, 691922
BytebuddyAgent [candidate] (749.228 ms) : 0, 749228
GlobalTracer [baseline] (248.724 ms) : 0, 248724
GlobalTracer [candidate] (223.837 ms) : 0, 223837
AppSec [baseline] (31.289 ms) : 0, 31289
AppSec [candidate] (29.967 ms) : 0, 29967
Debugger [baseline] (6.451 ms) : 0, 6451
Debugger [candidate] (5.486 ms) : 0, 5486
Remote Config [baseline] (688.351 µs) : 0, 688
Remote Config [candidate] (701.357 µs) : 0, 701
Telemetry [baseline] (9.046 ms) : 0, 9046
Telemetry [candidate] (9.135 ms) : 0, 9135
section iast
crashtracking [baseline] (1.457 ms) : 0, 1457
crashtracking [candidate] (1.483 ms) : 0, 1483
BytebuddyAgent [baseline] (817.292 ms) : 0, 817292
BytebuddyAgent [candidate] (853.023 ms) : 0, 853023
GlobalTracer [baseline] (238.929 ms) : 0, 238929
GlobalTracer [candidate] (225.807 ms) : 0, 225807
AppSec [baseline] (33.135 ms) : 0, 33135
AppSec [candidate] (29.286 ms) : 0, 29286
Debugger [baseline] (6.076 ms) : 0, 6076
Debugger [candidate] (5.676 ms) : 0, 5676
Remote Config [baseline] (597.522 µs) : 0, 598
Remote Config [candidate] (662.353 µs) : 0, 662
Telemetry [baseline] (8.149 ms) : 0, 8149
Telemetry [candidate] (9.176 ms) : 0, 9176
IAST [baseline] (26.947 ms) : 0, 26947
IAST [candidate] (26.795 ms) : 0, 26795
LoadParameters
See matching parameters
SummaryFound 2 performance improvements and 1 performance regressions! Performance is the same for 9 metrics, 12 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section baseline
no_agent (4.343 ms) : 4287, 4399
. : milestone, 4343,
iast (9.927 ms) : 9763, 10091
. : milestone, 9927,
iast_FULL (14.636 ms) : 14345, 14927
. : milestone, 14636,
iast_GLOBAL (10.838 ms) : 10644, 11031
. : milestone, 10838,
profiling (9.277 ms) : 9113, 9442
. : milestone, 9277,
tracing (7.659 ms) : 7549, 7769
. : milestone, 7659,
section candidate
no_agent (4.382 ms) : 4333, 4431
. : milestone, 4382,
iast (9.4 ms) : 9239, 9562
. : milestone, 9400,
iast_FULL (14.622 ms) : 14329, 14914
. : milestone, 14622,
iast_GLOBAL (10.845 ms) : 10653, 11038
. : milestone, 10845,
profiling (8.693 ms) : 8556, 8830
. : milestone, 8693,
tracing (7.556 ms) : 7444, 7667
. : milestone, 7556,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section baseline
no_agent (36.593 ms) : 36296, 36890
. : milestone, 36593,
appsec (47.722 ms) : 47313, 48132
. : milestone, 47722,
code_origins (42.266 ms) : 41895, 42637
. : milestone, 42266,
iast (44.285 ms) : 43891, 44680
. : milestone, 44285,
profiling (48.788 ms) : 48317, 49259
. : milestone, 48788,
tracing (43.895 ms) : 43523, 44268
. : milestone, 43895,
section candidate
no_agent (35.923 ms) : 35632, 36214
. : milestone, 35923,
appsec (47.107 ms) : 46696, 47517
. : milestone, 47107,
code_origins (45.108 ms) : 44733, 45484
. : milestone, 45108,
iast (43.709 ms) : 43323, 44094
. : milestone, 43709,
profiling (49.079 ms) : 48598, 49561
. : milestone, 49079,
tracing (44.092 ms) : 43722, 44461
. : milestone, 44092,
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.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section baseline
no_agent (14.98 s) : 14980000, 14980000
. : milestone, 14980000,
appsec (15.354 s) : 15354000, 15354000
. : milestone, 15354000,
iast (18.79 s) : 18790000, 18790000
. : milestone, 18790000,
iast_GLOBAL (18.024 s) : 18024000, 18024000
. : milestone, 18024000,
profiling (15.994 s) : 15994000, 15994000
. : milestone, 15994000,
tracing (14.954 s) : 14954000, 14954000
. : milestone, 14954000,
section candidate
no_agent (14.795 s) : 14795000, 14795000
. : milestone, 14795000,
appsec (14.857 s) : 14857000, 14857000
. : milestone, 14857000,
iast (18.446 s) : 18446000, 18446000
. : milestone, 18446000,
iast_GLOBAL (17.629 s) : 17629000, 17629000
. : milestone, 17629000,
profiling (15.397 s) : 15397000, 15397000
. : milestone, 15397000,
tracing (15.141 s) : 15141000, 15141000
. : milestone, 15141000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.54.0-SNAPSHOT~d2e45f1818, baseline=1.54.0-SNAPSHOT~b09dcc584a
dateFormat X
axisFormat %s
section baseline
no_agent (1.471 ms) : 1460, 1483
. : milestone, 1471,
appsec (3.724 ms) : 3505, 3942
. : milestone, 3724,
iast (2.19 ms) : 2127, 2253
. : milestone, 2190,
iast_GLOBAL (2.244 ms) : 2181, 2307
. : milestone, 2244,
profiling (2.053 ms) : 2001, 2106
. : milestone, 2053,
tracing (2.008 ms) : 1959, 2057
. : milestone, 2008,
section candidate
no_agent (1.471 ms) : 1459, 1483
. : milestone, 1471,
appsec (3.763 ms) : 3544, 3982
. : milestone, 3763,
iast (2.2 ms) : 2137, 2263
. : milestone, 2200,
iast_GLOBAL (2.25 ms) : 2187, 2314
. : milestone, 2250,
profiling (2.063 ms) : 2011, 2116
. : milestone, 2063,
tracing (2.014 ms) : 1965, 2063
. : milestone, 2014,
|
Just a warning that doing this means we lose the chance to field-inject several JDK classes - so while startup will improve, memory and latency will increase for async operations (because we now have to fall back to the global weak map to track async context.) I have an upcoming PR that will separate out field-injection (which must happen as early as possible but is simpler) from the rest of the instrumentation. Once that has been reviewed and merged then it will give more opportunity for scheduling transformations to a later time. (note we also have an experimental mode already in the codebase that postpones instrumentation where possible: #6887) |
thanks @mcculls for having provided feedback to this one. I was experimenting that idea - I was ignoring some of the caveats you highlighted. I'm closing the PR right now. Hopefully soon we'll have more flexibility for that |
What Does This Do
Motivation
Additional Notes
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: [PROJ-IDENT]