-
Notifications
You must be signed in to change notification settings - Fork 320
Use ClassFile parser when pre-loading class hierarchies
#9969
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
|
🎯 Code Coverage 🔗 Commit SHA: 306a2f5 | Docs | Datadog PR Page | Was this helpful? Give us feedback! |
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 57 metrics, 8 unstable metrics. Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.098 s) : 0, 1098073
Total [baseline] (10.752 s) : 0, 10752238
Agent [candidate] (1.097 s) : 0, 1097271
Total [candidate] (10.789 s) : 0, 10788584
section appsec
Agent [baseline] (1.281 s) : 0, 1280841
Total [baseline] (11.079 s) : 0, 11079122
Agent [candidate] (1.279 s) : 0, 1278547
Total [candidate] (11.04 s) : 0, 11039534
section iast
Agent [baseline] (1.235 s) : 0, 1235412
Total [baseline] (11.3 s) : 0, 11299563
Agent [candidate] (1.24 s) : 0, 1240429
Total [candidate] (11.335 s) : 0, 11334687
section profiling
Agent [baseline] (1.236 s) : 0, 1235961
Total [baseline] (11.087 s) : 0, 11087421
Agent [candidate] (1.231 s) : 0, 1230886
Total [candidate] (11.111 s) : 0, 11111063
gantt
title petclinic - break down per module: candidate=1.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.461 ms) : 0, 1461
crashtracking [candidate] (1.46 ms) : 0, 1460
BytebuddyAgent [baseline] (704.562 ms) : 0, 704562
BytebuddyAgent [candidate] (704.423 ms) : 0, 704423
GlobalTracer [baseline] (248.078 ms) : 0, 248078
GlobalTracer [candidate] (248.077 ms) : 0, 248077
AppSec [baseline] (32.298 ms) : 0, 32298
AppSec [candidate] (32.103 ms) : 0, 32103
Debugger [baseline] (64.265 ms) : 0, 64265
Debugger [candidate] (63.836 ms) : 0, 63836
Remote Config [baseline] (630.181 µs) : 0, 630
Remote Config [candidate] (623.601 µs) : 0, 624
Telemetry [baseline] (8.22 ms) : 0, 8220
Telemetry [candidate] (8.201 ms) : 0, 8201
Flare Poller [baseline] (3.66 ms) : 0, 3660
Flare Poller [candidate] (3.729 ms) : 0, 3729
section appsec
crashtracking [baseline] (1.466 ms) : 0, 1466
crashtracking [candidate] (1.468 ms) : 0, 1468
BytebuddyAgent [baseline] (730.447 ms) : 0, 730447
BytebuddyAgent [candidate] (729.892 ms) : 0, 729892
GlobalTracer [baseline] (239.911 ms) : 0, 239911
GlobalTracer [candidate] (240.104 ms) : 0, 240104
AppSec [baseline] (174.829 ms) : 0, 174829
AppSec [candidate] (173.769 ms) : 0, 173769
Debugger [baseline] (61.462 ms) : 0, 61462
Debugger [candidate] (60.788 ms) : 0, 60788
Remote Config [baseline] (708.072 µs) : 0, 708
Remote Config [candidate] (673.879 µs) : 0, 674
Telemetry [baseline] (8.25 ms) : 0, 8250
Telemetry [candidate] (8.294 ms) : 0, 8294
Flare Poller [baseline] (3.813 ms) : 0, 3813
Flare Poller [candidate] (3.885 ms) : 0, 3885
IAST [baseline] (24.821 ms) : 0, 24821
IAST [candidate] (24.696 ms) : 0, 24696
section iast
crashtracking [baseline] (1.453 ms) : 0, 1453
crashtracking [candidate] (1.465 ms) : 0, 1465
BytebuddyAgent [baseline] (827.045 ms) : 0, 827045
BytebuddyAgent [candidate] (829.792 ms) : 0, 829792
GlobalTracer [baseline] (237.544 ms) : 0, 237544
GlobalTracer [candidate] (238.617 ms) : 0, 238617
AppSec [baseline] (33.292 ms) : 0, 33292
AppSec [candidate] (32.86 ms) : 0, 32860
Debugger [baseline] (61.161 ms) : 0, 61161
Debugger [candidate] (61.639 ms) : 0, 61639
Remote Config [baseline] (551.011 µs) : 0, 551
Remote Config [candidate] (544.714 µs) : 0, 545
Telemetry [baseline] (7.731 ms) : 0, 7731
Telemetry [candidate] (7.825 ms) : 0, 7825
Flare Poller [baseline] (3.488 ms) : 0, 3488
Flare Poller [candidate] (3.493 ms) : 0, 3493
IAST [baseline] (28.25 ms) : 0, 28250
IAST [candidate] (29.22 ms) : 0, 29220
section profiling
crashtracking [baseline] (1.459 ms) : 0, 1459
crashtracking [candidate] (1.438 ms) : 0, 1438
BytebuddyAgent [baseline] (734.62 ms) : 0, 734620
BytebuddyAgent [candidate] (731.445 ms) : 0, 731445
GlobalTracer [baseline] (222.973 ms) : 0, 222973
GlobalTracer [candidate] (222.315 ms) : 0, 222315
AppSec [baseline] (33.1 ms) : 0, 33100
AppSec [candidate] (32.304 ms) : 0, 32304
Debugger [baseline] (62.832 ms) : 0, 62832
Debugger [candidate] (63.558 ms) : 0, 63558
Remote Config [baseline] (648.835 µs) : 0, 649
Remote Config [candidate] (667.915 µs) : 0, 668
Telemetry [baseline] (8.015 ms) : 0, 8015
Telemetry [candidate] (8.047 ms) : 0, 8047
Flare Poller [baseline] (3.756 ms) : 0, 3756
Flare Poller [candidate] (3.71 ms) : 0, 3710
ProfilingAgent [baseline] (98.558 ms) : 0, 98558
ProfilingAgent [candidate] (97.706 ms) : 0, 97706
Profiling [baseline] (99.152 ms) : 0, 99152
Profiling [candidate] (98.291 ms) : 0, 98291
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.099 s) : 0, 1099202
Total [baseline] (8.859 s) : 0, 8859042
Agent [candidate] (1.099 s) : 0, 1098809
Total [candidate] (8.813 s) : 0, 8812723
section iast
Agent [baseline] (1.244 s) : 0, 1244327
Total [baseline] (9.552 s) : 0, 9551792
Agent [candidate] (1.237 s) : 0, 1237458
Total [candidate] (9.525 s) : 0, 9524668
gantt
title insecure-bank - break down per module: candidate=1.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section tracing
crashtracking [baseline] (1.457 ms) : 0, 1457
crashtracking [candidate] (1.46 ms) : 0, 1460
BytebuddyAgent [baseline] (706.441 ms) : 0, 706441
BytebuddyAgent [candidate] (705.728 ms) : 0, 705728
GlobalTracer [baseline] (248.476 ms) : 0, 248476
GlobalTracer [candidate] (248.387 ms) : 0, 248387
AppSec [baseline] (32.295 ms) : 0, 32295
AppSec [candidate] (32.334 ms) : 0, 32334
Debugger [baseline] (63.273 ms) : 0, 63273
Debugger [candidate] (63.513 ms) : 0, 63513
Remote Config [baseline] (632.139 µs) : 0, 632
Remote Config [candidate] (648.228 µs) : 0, 648
Telemetry [baseline] (8.067 ms) : 0, 8067
Telemetry [candidate] (8.163 ms) : 0, 8163
Flare Poller [baseline] (3.671 ms) : 0, 3671
Flare Poller [candidate] (3.692 ms) : 0, 3692
section iast
crashtracking [baseline] (1.482 ms) : 0, 1482
crashtracking [candidate] (1.457 ms) : 0, 1457
BytebuddyAgent [baseline] (835.264 ms) : 0, 835264
BytebuddyAgent [candidate] (829.912 ms) : 0, 829912
GlobalTracer [baseline] (238.36 ms) : 0, 238360
GlobalTracer [candidate] (237.596 ms) : 0, 237596
AppSec [baseline] (33.271 ms) : 0, 33271
AppSec [candidate] (33.995 ms) : 0, 33995
Debugger [baseline] (60.521 ms) : 0, 60521
Debugger [candidate] (60.33 ms) : 0, 60330
Remote Config [baseline] (552.099 µs) : 0, 552
Remote Config [candidate] (552.464 µs) : 0, 552
Telemetry [baseline] (7.793 ms) : 0, 7793
Telemetry [candidate] (7.723 ms) : 0, 7723
Flare Poller [baseline] (3.539 ms) : 0, 3539
Flare Poller [candidate] (3.48 ms) : 0, 3480
IAST [baseline] (28.467 ms) : 0, 28467
IAST [candidate] (27.335 ms) : 0, 27335
LoadParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 19 metrics, 16 unstable metrics.
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section baseline
no_agent (19.008 ms) : 18813, 19202
. : milestone, 19008,
appsec (19.564 ms) : 19361, 19767
. : milestone, 19564,
code_origins (17.922 ms) : 17740, 18104
. : milestone, 17922,
iast (17.798 ms) : 17620, 17976
. : milestone, 17798,
profiling (18.831 ms) : 18647, 19016
. : milestone, 18831,
tracing (17.463 ms) : 17288, 17637
. : milestone, 17463,
section candidate
no_agent (18.012 ms) : 17827, 18198
. : milestone, 18012,
appsec (18.53 ms) : 18341, 18719
. : milestone, 18530,
code_origins (17.523 ms) : 17348, 17698
. : milestone, 17523,
iast (17.602 ms) : 17426, 17778
. : milestone, 17602,
profiling (18.477 ms) : 18292, 18662
. : milestone, 18477,
tracing (17.462 ms) : 17290, 17634
. : milestone, 17462,
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section baseline
no_agent (1.182 ms) : 1171, 1194
. : milestone, 1182,
iast (3.222 ms) : 3176, 3268
. : milestone, 3222,
iast_FULL (5.779 ms) : 5696, 5862
. : milestone, 5779,
iast_GLOBAL (3.667 ms) : 3581, 3753
. : milestone, 3667,
profiling (1.986 ms) : 1969, 2003
. : milestone, 1986,
tracing (1.786 ms) : 1771, 1800
. : milestone, 1786,
section candidate
no_agent (1.189 ms) : 1178, 1201
. : milestone, 1189,
iast (3.27 ms) : 3211, 3329
. : milestone, 3270,
iast_FULL (5.712 ms) : 5655, 5769
. : milestone, 5712,
iast_GLOBAL (3.678 ms) : 3616, 3740
. : milestone, 3678,
profiling (2.098 ms) : 2079, 2116
. : milestone, 2098,
tracing (1.812 ms) : 1797, 1828
. : milestone, 1812,
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.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section baseline
no_agent (15.015 s) : 15015000, 15015000
. : milestone, 15015000,
appsec (14.643 s) : 14643000, 14643000
. : milestone, 14643000,
iast (18.123 s) : 18123000, 18123000
. : milestone, 18123000,
iast_GLOBAL (17.816 s) : 17816000, 17816000
. : milestone, 17816000,
profiling (14.773 s) : 14773000, 14773000
. : milestone, 14773000,
tracing (14.958 s) : 14958000, 14958000
. : milestone, 14958000,
section candidate
no_agent (15.625 s) : 15625000, 15625000
. : milestone, 15625000,
appsec (14.866 s) : 14866000, 14866000
. : milestone, 14866000,
iast (18.091 s) : 18091000, 18091000
. : milestone, 18091000,
iast_GLOBAL (17.888 s) : 17888000, 17888000
. : milestone, 17888000,
profiling (15.032 s) : 15032000, 15032000
. : milestone, 15032000,
tracing (14.994 s) : 14994000, 14994000
. : milestone, 14994000,
Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.56.0-SNAPSHOT~306a2f5806, baseline=1.56.0-SNAPSHOT~c93f2e7d2f
dateFormat X
axisFormat %s
section baseline
no_agent (1.479 ms) : 1468, 1491
. : milestone, 1479,
appsec (3.728 ms) : 3507, 3949
. : milestone, 3728,
iast (2.22 ms) : 2156, 2284
. : milestone, 2220,
iast_GLOBAL (2.261 ms) : 2197, 2326
. : milestone, 2261,
profiling (2.087 ms) : 2033, 2141
. : milestone, 2087,
tracing (2.021 ms) : 1972, 2071
. : milestone, 2021,
section candidate
no_agent (1.474 ms) : 1462, 1485
. : milestone, 1474,
appsec (3.71 ms) : 3489, 3931
. : milestone, 3710,
iast (2.213 ms) : 2149, 2277
. : milestone, 2213,
iast_GLOBAL (2.262 ms) : 2197, 2326
. : milestone, 2262,
profiling (2.068 ms) : 2016, 2121
. : milestone, 2068,
tracing (2.035 ms) : 1985, 2085
. : milestone, 2035,
|
ClassFile parser when pre-loading class hierarchies
Motivation
We already parse bytecode just before classes are defined so we can pre-load super-classes and interfaces before the type using them (this ordering is not necessarily guaranteed by the JVM.) This pre-loading helps get the most out of type hierarchy optimizations such as memoization.
This PR switches this parsing to use our optimized class header parser instead of ASM.
The difference is more noticeable in large applications that load lots of classes.
For example, time taken to parse the classes in
spring-web- lower number is better: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]