-
Notifications
You must be signed in to change notification settings - Fork 293
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
Optimize the SourceFile tracking #8520
base: master
Are you sure you want to change the base?
Conversation
We provide a new way to extract the SourceFile attribute from classfile that just scan the byte array to reconstruct the offsets of the constant pool and quickly fetch at the right location the content of the SourceFile attribute
Hi! 👋 Thanks for your pull request! 🎉 To help us review it, please make sure to:
If you need help, please check our contributing guidelines. |
Debugger benchmarksParameters
See matching parameters
SummaryFound 5 performance improvements and 0 performance regressions! Performance is the same for 5 metrics, 5 unstable metrics.
See unchanged results
Request duration reports for reportsgantt
title reports - request duration [CI 0.99] : candidate=None, baseline=None
dateFormat X
axisFormat %s
section baseline
noprobe (312.138 µs) : 281, 344
. : milestone, 312,
basic (302.884 µs) : 293, 313
. : milestone, 303,
loop (10.768 ms) : 10734, 10802
. : milestone, 10768,
section candidate
noprobe (311.101 µs) : 289, 333
. : milestone, 311,
basic (309.532 µs) : 300, 319
. : milestone, 310,
loop (10.448 ms) : 10340, 10555
. : milestone, 10448,
|
BenchmarksStartupParameters
See matching parameters
SummaryFound 1 performance improvements and 0 performance regressions! Performance is the same for 59 metrics, 3 unstable metrics.
Startup time reports for insecure-bankgantt
title insecure-bank - global startup overhead: candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.041 s) : 0, 1041436
Total [baseline] (8.684 s) : 0, 8683778
Agent [candidate] (1.036 s) : 0, 1035785
Total [candidate] (8.662 s) : 0, 8661887
section iast
Agent [baseline] (1.17 s) : 0, 1169502
Total [baseline] (9.233 s) : 0, 9233156
Agent [candidate] (1.172 s) : 0, 1172086
Total [candidate] (9.242 s) : 0, 9241986
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.17 s) : 0, 1170267
Total [baseline] (9.211 s) : 0, 9211467
Agent [candidate] (1.18 s) : 0, 1179929
Total [candidate] (9.25 s) : 0, 9249958
section iast_TELEMETRY_OFF
Agent [baseline] (1.166 s) : 0, 1165794
Total [baseline] (9.227 s) : 0, 9226846
Agent [candidate] (1.165 s) : 0, 1165362
Total [candidate] (9.282 s) : 0, 9281747
gantt
title insecure-bank - break down per module: candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (718.224 ms) : 0, 718224
BytebuddyAgent [candidate] (716.402 ms) : 0, 716402
GlobalTracer [baseline] (240.086 ms) : 0, 240086
GlobalTracer [candidate] (239.342 ms) : 0, 239342
AppSec [baseline] (55.378 ms) : 0, 55378
AppSec [candidate] (55.214 ms) : 0, 55214
Remote Config [baseline] (683.972 µs) : 0, 684
Remote Config [candidate] (687.933 µs) : 0, 688
Telemetry [baseline] (12.091 ms) : 0, 12091
Telemetry [candidate] (9.257 ms) : 0, 9257
section iast
BytebuddyAgent [baseline] (836.228 ms) : 0, 836228
BytebuddyAgent [candidate] (837.608 ms) : 0, 837608
GlobalTracer [baseline] (230.039 ms) : 0, 230039
GlobalTracer [candidate] (230.362 ms) : 0, 230362
IAST [baseline] (22.638 ms) : 0, 22638
IAST [candidate] (23.081 ms) : 0, 23081
AppSec [baseline] (56.492 ms) : 0, 56492
AppSec [candidate] (56.561 ms) : 0, 56561
Remote Config [baseline] (620.447 µs) : 0, 620
Remote Config [candidate] (616.142 µs) : 0, 616
Telemetry [baseline] (8.557 ms) : 0, 8557
Telemetry [candidate] (8.801 ms) : 0, 8801
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (836.494 ms) : 0, 836494
BytebuddyAgent [candidate] (843.152 ms) : 0, 843152
GlobalTracer [baseline] (229.952 ms) : 0, 229952
GlobalTracer [candidate] (232.105 ms) : 0, 232105
IAST [baseline] (22.958 ms) : 0, 22958
IAST [candidate] (23.179 ms) : 0, 23179
AppSec [baseline] (56.529 ms) : 0, 56529
AppSec [candidate] (56.992 ms) : 0, 56992
Remote Config [baseline] (614.306 µs) : 0, 614
Remote Config [candidate] (628.123 µs) : 0, 628
Telemetry [baseline] (8.754 ms) : 0, 8754
Telemetry [candidate] (8.828 ms) : 0, 8828
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (832.868 ms) : 0, 832868
BytebuddyAgent [candidate] (832.665 ms) : 0, 832665
GlobalTracer [baseline] (230.026 ms) : 0, 230026
GlobalTracer [candidate] (229.917 ms) : 0, 229917
IAST [baseline] (22.316 ms) : 0, 22316
IAST [candidate] (26.315 ms) : 0, 26315
AppSec [baseline] (56.472 ms) : 0, 56472
AppSec [candidate] (52.37 ms) : 0, 52370
Remote Config [baseline] (615.986 µs) : 0, 616
Remote Config [candidate] (607.288 µs) : 0, 607
Telemetry [baseline] (8.572 ms) : 0, 8572
Telemetry [candidate] (8.535 ms) : 0, 8535
Startup time reports for petclinicgantt
title petclinic - global startup overhead: candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section tracing
Agent [baseline] (1.055 s) : 0, 1055382
Total [baseline] (10.526 s) : 0, 10525877
Agent [candidate] (1.041 s) : 0, 1041090
Total [candidate] (10.463 s) : 0, 10462990
section appsec
Agent [baseline] (1.185 s) : 0, 1185024
Total [baseline] (10.755 s) : 0, 10755404
Agent [candidate] (1.185 s) : 0, 1184607
Total [candidate] (10.842 s) : 0, 10842468
section iast
Agent [baseline] (1.169 s) : 0, 1169051
Total [baseline] (10.967 s) : 0, 10967016
Agent [candidate] (1.171 s) : 0, 1170988
Total [candidate] (10.999 s) : 0, 10998991
section profiling
Agent [baseline] (1.267 s) : 0, 1267377
Total [baseline] (10.968 s) : 0, 10968339
Agent [candidate] (1.262 s) : 0, 1261710
Total [candidate] (10.862 s) : 0, 10862061
gantt
title petclinic - break down per module: candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section tracing
BytebuddyAgent [baseline] (728.211 ms) : 0, 728211
BytebuddyAgent [candidate] (717.575 ms) : 0, 717575
GlobalTracer [baseline] (242.585 ms) : 0, 242585
GlobalTracer [candidate] (239.891 ms) : 0, 239891
AppSec [baseline] (56.262 ms) : 0, 56262
AppSec [candidate] (55.658 ms) : 0, 55658
Remote Config [baseline] (708.186 µs) : 0, 708
Remote Config [candidate] (697.912 µs) : 0, 698
Telemetry [baseline] (12.389 ms) : 0, 12389
Telemetry [candidate] (12.306 ms) : 0, 12306
section appsec
BytebuddyAgent [baseline] (736.268 ms) : 0, 736268
BytebuddyAgent [candidate] (735.513 ms) : 0, 735513
GlobalTracer [baseline] (236.962 ms) : 0, 236962
GlobalTracer [candidate] (236.578 ms) : 0, 236578
IAST [baseline] (21.71 ms) : 0, 21710
IAST [candidate] (21.491 ms) : 0, 21491
AppSec [baseline] (176.999 ms) : 0, 176999
AppSec [candidate] (177.862 ms) : 0, 177862
Remote Config [baseline] (667.359 µs) : 0, 667
Remote Config [candidate] (668.313 µs) : 0, 668
Telemetry [baseline] (8.31 ms) : 0, 8310
Telemetry [candidate] (8.335 ms) : 0, 8335
section iast
BytebuddyAgent [baseline] (835.465 ms) : 0, 835465
BytebuddyAgent [candidate] (836.333 ms) : 0, 836333
GlobalTracer [baseline] (229.945 ms) : 0, 229945
GlobalTracer [candidate] (230.287 ms) : 0, 230287
IAST [baseline] (22.949 ms) : 0, 22949
IAST [candidate] (22.784 ms) : 0, 22784
AppSec [baseline] (56.452 ms) : 0, 56452
AppSec [candidate] (57.252 ms) : 0, 57252
Remote Config [baseline] (629.97 µs) : 0, 630
Remote Config [candidate] (612.415 µs) : 0, 612
Telemetry [baseline] (8.641 ms) : 0, 8641
Telemetry [candidate] (8.715 ms) : 0, 8715
section profiling
BytebuddyAgent [baseline] (713.768 ms) : 0, 713768
BytebuddyAgent [candidate] (710.06 ms) : 0, 710060
GlobalTracer [baseline] (350.806 ms) : 0, 350806
GlobalTracer [candidate] (351.414 ms) : 0, 351414
AppSec [baseline] (55.312 ms) : 0, 55312
AppSec [candidate] (54.065 ms) : 0, 54065
Remote Config [baseline] (679.094 µs) : 0, 679
Remote Config [candidate] (678.704 µs) : 0, 679
Telemetry [baseline] (9.017 ms) : 0, 9017
Telemetry [candidate] (9.065 ms) : 0, 9065
ProfilingAgent [baseline] (97.202 ms) : 0, 97202
ProfilingAgent [candidate] (96.042 ms) : 0, 96042
Profiling [baseline] (97.227 ms) : 0, 97227
Profiling [candidate] (96.066 ms) : 0, 96066
LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 1 performance regressions! Performance is the same for 13 metrics, 16 unstable metrics.
Request duration reports for insecure-bankgantt
title insecure-bank - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section baseline
no_agent (389.033 µs) : 368, 410
. : milestone, 389,
iast (514.573 µs) : 493, 536
. : milestone, 515,
iast_FULL (728.336 µs) : 707, 750
. : milestone, 728,
iast_GLOBAL (561.417 µs) : 539, 584
. : milestone, 561,
iast_HARDCODED_SECRET_DISABLED (512.942 µs) : 491, 535
. : milestone, 513,
iast_INACTIVE (468.186 µs) : 447, 490
. : milestone, 468,
iast_TELEMETRY_OFF (502.105 µs) : 479, 525
. : milestone, 502,
tracing (452.946 µs) : 432, 474
. : milestone, 453,
section candidate
no_agent (384.218 µs) : 364, 404
. : milestone, 384,
iast (510.243 µs) : 488, 533
. : milestone, 510,
iast_FULL (737.882 µs) : 716, 760
. : milestone, 738,
iast_GLOBAL (566.955 µs) : 545, 589
. : milestone, 567,
iast_HARDCODED_SECRET_DISABLED (519.98 µs) : 497, 543
. : milestone, 520,
iast_INACTIVE (469.42 µs) : 448, 491
. : milestone, 469,
iast_TELEMETRY_OFF (501.286 µs) : 479, 524
. : milestone, 501,
tracing (458.912 µs) : 438, 480
. : milestone, 459,
Request duration reports for petclinicgantt
title petclinic - request duration [CI 0.99] : candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section baseline
no_agent (1.348 ms) : 1329, 1367
. : milestone, 1348,
appsec (1.749 ms) : 1725, 1772
. : milestone, 1749,
appsec_no_iast (1.724 ms) : 1700, 1748
. : milestone, 1724,
code_origins (1.721 ms) : 1688, 1754
. : milestone, 1721,
iast (1.512 ms) : 1488, 1536
. : milestone, 1512,
profiling (1.505 ms) : 1481, 1528
. : milestone, 1505,
tracing (1.499 ms) : 1473, 1525
. : milestone, 1499,
section candidate
no_agent (1.365 ms) : 1346, 1385
. : milestone, 1365,
appsec (1.74 ms) : 1716, 1763
. : milestone, 1740,
appsec_no_iast (1.752 ms) : 1728, 1776
. : milestone, 1752,
code_origins (1.7 ms) : 1673, 1726
. : milestone, 1700,
iast (1.509 ms) : 1485, 1533
. : milestone, 1509,
profiling (1.573 ms) : 1549, 1596
. : milestone, 1573,
tracing (1.525 ms) : 1500, 1550
. : milestone, 1525,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for tomcatgantt
title tomcat - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section baseline
no_agent (1.465 ms) : 1454, 1476
. : milestone, 1465,
appsec (2.329 ms) : 2286, 2372
. : milestone, 2329,
iast (2.104 ms) : 2049, 2158
. : milestone, 2104,
iast_GLOBAL (2.147 ms) : 2092, 2201
. : milestone, 2147,
profiling (1.976 ms) : 1932, 2019
. : milestone, 1976,
tracing (1.94 ms) : 1898, 1982
. : milestone, 1940,
section candidate
no_agent (1.47 ms) : 1458, 1481
. : milestone, 1470,
appsec (2.334 ms) : 2291, 2378
. : milestone, 2334,
iast (2.098 ms) : 2043, 2153
. : milestone, 2098,
iast_GLOBAL (2.153 ms) : 2098, 2208
. : milestone, 2153,
profiling (1.955 ms) : 1912, 1999
. : milestone, 1955,
tracing (1.933 ms) : 1892, 1975
. : milestone, 1933,
Execution time for biojavagantt
title biojava - execution time [CI 0.99] : candidate=1.48.0-SNAPSHOT~aa4be16a8b, baseline=1.48.0-SNAPSHOT~71cbb065b9
dateFormat X
axisFormat %s
section baseline
no_agent (15.414 s) : 15414000, 15414000
. : milestone, 15414000,
appsec (14.819 s) : 14819000, 14819000
. : milestone, 14819000,
iast (18.875 s) : 18875000, 18875000
. : milestone, 18875000,
iast_GLOBAL (18.177 s) : 18177000, 18177000
. : milestone, 18177000,
profiling (14.983 s) : 14983000, 14983000
. : milestone, 14983000,
tracing (15.062 s) : 15062000, 15062000
. : milestone, 15062000,
section candidate
no_agent (15.573 s) : 15573000, 15573000
. : milestone, 15573000,
appsec (15.065 s) : 15065000, 15065000
. : milestone, 15065000,
iast (18.235 s) : 18235000, 18235000
. : milestone, 18235000,
iast_GLOBAL (17.986 s) : 17986000, 17986000
. : milestone, 17986000,
profiling (14.804 s) : 14804000, 14804000
. : milestone, 14804000,
tracing (14.93 s) : 14930000, 14930000
. : milestone, 14930000,
|
// Quick validation of minimum class file size and magic number | ||
if (classFileBytes == null | ||
|| classFileBytes.length < 10 | ||
|| classFileBytes[0] != (byte) 0xCA |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CAFEBABE - leet
What Does This Do
We provide a new way to extract the SourceFile attribute from classfile that just scan the byte array to reconstruct the offsets of the constant pool and quickly fetch at the right location the content of the SourceFile attribute
Benchmarks:
Simple classfile:
Large classfile (60KB):
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: DEBUG-3575