Skip to content
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

Avoid duplicate class symbol extraction #7919

Merged
merged 1 commit into from
Nov 13, 2024

Conversation

jpbempel
Copy link
Member

@jpbempel jpbempel commented Nov 8, 2024

What Does This Do

We need to track all classes loaded and extracted into ClassNameTrie that is space efficient prefix tree. That way we prevent any duplicates reaching SymDB backend

Motivation

Same classes can be loaded in different classloader, but symbol-wise they are the same. In some situation (like Groovy script) we can a lot
of class loaded for same symbols which pollute SymDB backend.

Additional Notes

Contributor Checklist

Jira ticket: DEBUG-3114

Same classes can be loaded in different classloader, but symbol-wise
they are the same. In some situation (like Groovy script) we can a lot
 of class loaded for same symbols which pollute SymDB backend.
We need to track all classes loaded and extracted into ClassNameTrie
that is space efficient prefix tree. That way we prevent any
duplicates reaching SymDB backend
@jpbempel jpbempel added the comp: debugger Dynamic Instrumentation label Nov 8, 2024
@jpbempel jpbempel requested a review from a team as a code owner November 8, 2024 10:16
@jpbempel jpbempel requested review from shatzi and removed request for a team November 8, 2024 10:16
Copy link
Contributor

github-actions bot commented Nov 8, 2024

Hi! 👋 Thanks for your pull request! 🎉

To help us review it, please make sure to:

  • Add at least one type, and one component or instrumentation label to the pull request

If you need help, please check our contributing guidelines.

@pr-commenter
Copy link

pr-commenter bot commented Nov 8, 2024

Debugger benchmarks

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
ci_job_date 1731061513 1731061894
end_time 2024-11-08T10:26:28 2024-11-08T10:32:49
git_branch master jpbempel/symdb-dedup-classes
git_commit_sha 8b31030 60ab16c
start_time 2024-11-08T10:25:14 2024-11-08T10:31:35
See matching parameters
Baseline Candidate
ci_job_id 700286111 700286111
ci_pipeline_id 48543778 48543778
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
git_commit_date 1731060947 1731060947

Summary

Found 4 performance improvements and 0 performance regressions! Performance is the same for 5 metrics, 6 unstable metrics.

scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:loop better
[-353.552µs; -265.948µs] or [-3.392%; -2.552%]
better
[-384.179µs; -282.918µs] or [-3.626%; -2.670%]
better
[-396.532µs; -263.322µs] or [-3.708%; -2.463%]
unsure
[-646.059µs; -75.085µs] or [-5.791%; -0.673%]
better
[+1.901op/s; +3.491op/s] or [+2.034%; +3.735%]
See unchanged results
scenario Δ mean agg_http_req_duration_min Δ mean agg_http_req_duration_p50 Δ mean agg_http_req_duration_p75 Δ mean agg_http_req_duration_p99 Δ mean throughput
scenario:noprobe unstable
[-14.594µs; +21.847µs] or [-5.635%; +8.436%]
unstable
[-26.207µs; +32.569µs] or [-8.849%; +10.997%]
unstable
[-35.768µs; +43.688µs] or [-11.589%; +14.156%]
unstable
[-116.435µs; +62.153µs] or [-18.853%; +10.064%]
same
scenario:basic same same same unstable
[-93.457µs; +11.937µs] or [-16.370%; +2.091%]
unstable
[-163.861op/s; +163.861op/s] or [-6.391%; +6.391%]
Request duration reports for reports
gantt
    title reports - request duration [CI 0.99] : candidate=None, baseline=None
    dateFormat X
    axisFormat %s
section baseline
noprobe (296.157 µs) : 270, 322
.   : milestone, 296,
basic (301.463 µs) : 294, 309
.   : milestone, 301,
loop (10.596 ms) : 10535, 10658
.   : milestone, 10596,
section candidate
noprobe (299.338 µs) : 269, 330
.   : milestone, 299,
basic (302.769 µs) : 293, 313
.   : milestone, 303,
loop (10.263 ms) : 10237, 10288
.   : milestone, 10263,
Loading
  • baseline results
Scenario Request median duration [CI 0.99]
noprobe 296.157 µs [270.463 µs, 321.851 µs]
basic 301.463 µs [294.2 µs, 308.726 µs]
loop 10.596 ms [10.535 ms, 10.658 ms]
  • candidate results
Scenario Request median duration [CI 0.99]
noprobe 299.338 µs [269.149 µs, 329.527 µs]
basic 302.769 µs [292.843 µs, 312.695 µs]
loop 10.263 ms [10.237 ms, 10.288 ms]

@pr-commenter
Copy link

pr-commenter bot commented Nov 8, 2024

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/symdb-dedup-classes
git_commit_date 1731059698 1731060947
git_commit_sha 8b31030 60ab16c
release_version 1.43.0-SNAPSHOT~8b3103079b 1.43.0-SNAPSHOT~60ab16c83e
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1731063222 1731063222
ci_job_id 700286105 700286105
ci_pipeline_id 48543778 48543778
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
module Agent Agent
parent None None
variant iast iast

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 53 metrics, 10 unstable metrics.

Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.078 s) : 0, 1077850
Total [baseline] (8.519 s) : 0, 8518901
Agent [candidate] (1.079 s) : 0, 1079417
Total [candidate] (8.531 s) : 0, 8530611
section iast
Agent [baseline] (1.206 s) : 0, 1206268
Total [baseline] (9.106 s) : 0, 9105540
Agent [candidate] (1.204 s) : 0, 1204194
Total [candidate] (9.129 s) : 0, 9128902
section iast_HARDCODED_SECRET_DISABLED
Agent [baseline] (1.203 s) : 0, 1202911
Total [baseline] (9.063 s) : 0, 9062565
Agent [candidate] (1.202 s) : 0, 1202424
Total [candidate] (9.05 s) : 0, 9050186
section iast_TELEMETRY_OFF
Agent [baseline] (1.21 s) : 0, 1209882
Total [baseline] (9.114 s) : 0, 9114338
Agent [candidate] (1.211 s) : 0, 1210790
Total [candidate] (9.092 s) : 0, 9092178
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.078 s -
Agent iast 1.206 s 128.417 ms (11.9%)
Agent iast_HARDCODED_SECRET_DISABLED 1.203 s 125.06 ms (11.6%)
Agent iast_TELEMETRY_OFF 1.21 s 132.032 ms (12.2%)
Total tracing 8.519 s -
Total iast 9.106 s 586.639 ms (6.9%)
Total iast_HARDCODED_SECRET_DISABLED 9.063 s 543.664 ms (6.4%)
Total iast_TELEMETRY_OFF 9.114 s 595.437 ms (7.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.079 s -
Agent iast 1.204 s 124.777 ms (11.6%)
Agent iast_HARDCODED_SECRET_DISABLED 1.202 s 123.008 ms (11.4%)
Agent iast_TELEMETRY_OFF 1.211 s 131.373 ms (12.2%)
Total tracing 8.531 s -
Total iast 9.129 s 598.291 ms (7.0%)
Total iast_HARDCODED_SECRET_DISABLED 9.05 s 519.575 ms (6.1%)
Total iast_TELEMETRY_OFF 9.092 s 561.566 ms (6.6%)
gantt
    title insecure-bank - break down per module: candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (686.155 ms) : 0, 686155
BytebuddyAgent [candidate] (685.796 ms) : 0, 685796
GlobalTracer [baseline] (314.179 ms) : 0, 314179
GlobalTracer [candidate] (314.311 ms) : 0, 314311
AppSec [baseline] (54.096 ms) : 0, 54096
AppSec [candidate] (53.791 ms) : 0, 53791
Remote Config [baseline] (674.554 µs) : 0, 675
Remote Config [candidate] (679.134 µs) : 0, 679
Telemetry [baseline] (9.141 ms) : 0, 9141
Telemetry [candidate] (11.213 ms) : 0, 11213
section iast
BytebuddyAgent [baseline] (803.483 ms) : 0, 803483
BytebuddyAgent [candidate] (801.248 ms) : 0, 801248
GlobalTracer [baseline] (303.828 ms) : 0, 303828
GlobalTracer [candidate] (303.058 ms) : 0, 303058
AppSec [baseline] (56.948 ms) : 0, 56948
AppSec [candidate] (57.497 ms) : 0, 57497
IAST [baseline] (20.371 ms) : 0, 20371
IAST [candidate] (20.547 ms) : 0, 20547
Remote Config [baseline] (610.703 µs) : 0, 611
Remote Config [candidate] (608.682 µs) : 0, 609
Telemetry [baseline] (7.343 ms) : 0, 7343
Telemetry [candidate] (7.553 ms) : 0, 7553
section iast_HARDCODED_SECRET_DISABLED
BytebuddyAgent [baseline] (800.451 ms) : 0, 800451
BytebuddyAgent [candidate] (799.707 ms) : 0, 799707
GlobalTracer [baseline] (303.124 ms) : 0, 303124
GlobalTracer [candidate] (303.479 ms) : 0, 303479
AppSec [baseline] (55.686 ms) : 0, 55686
AppSec [candidate] (56.397 ms) : 0, 56397
IAST [baseline] (22.033 ms) : 0, 22033
IAST [candidate] (21.195 ms) : 0, 21195
Remote Config [baseline] (612.079 µs) : 0, 612
Remote Config [candidate] (627.25 µs) : 0, 627
Telemetry [baseline] (7.377 ms) : 0, 7377
Telemetry [candidate] (7.387 ms) : 0, 7387
section iast_TELEMETRY_OFF
BytebuddyAgent [baseline] (804.401 ms) : 0, 804401
BytebuddyAgent [candidate] (805.102 ms) : 0, 805102
GlobalTracer [baseline] (304.866 ms) : 0, 304866
GlobalTracer [candidate] (305.849 ms) : 0, 305849
AppSec [baseline] (58.651 ms) : 0, 58651
AppSec [candidate] (56.861 ms) : 0, 56861
IAST [baseline] (20.221 ms) : 0, 20221
IAST [candidate] (21.216 ms) : 0, 21216
Remote Config [baseline] (602.663 µs) : 0, 603
Remote Config [candidate] (608.413 µs) : 0, 608
Telemetry [baseline] (7.442 ms) : 0, 7442
Telemetry [candidate] (7.395 ms) : 0, 7395
Loading
Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.078 s) : 0, 1077513
Total [baseline] (10.363 s) : 0, 10363477
Agent [candidate] (1.095 s) : 0, 1094712
Total [candidate] (10.314 s) : 0, 10314349
section appsec
Agent [baseline] (1.211 s) : 0, 1211340
Total [baseline] (10.598 s) : 0, 10598140
Agent [candidate] (1.216 s) : 0, 1215740
Total [candidate] (10.62 s) : 0, 10620388
section iast
Agent [baseline] (1.201 s) : 0, 1201002
Total [baseline] (10.829 s) : 0, 10828747
Agent [candidate] (1.206 s) : 0, 1205921
Total [candidate] (10.793 s) : 0, 10793245
section profiling
Agent [baseline] (1.285 s) : 0, 1285448
Total [baseline] (10.684 s) : 0, 10684030
Agent [candidate] (1.286 s) : 0, 1285535
Total [candidate] (10.74 s) : 0, 10740475
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.078 s -
Agent appsec 1.211 s 133.826 ms (12.4%)
Agent iast 1.201 s 123.489 ms (11.5%)
Agent profiling 1.285 s 207.935 ms (19.3%)
Total tracing 10.363 s -
Total appsec 10.598 s 234.662 ms (2.3%)
Total iast 10.829 s 465.27 ms (4.5%)
Total profiling 10.684 s 320.553 ms (3.1%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 1.095 s -
Agent appsec 1.216 s 121.027 ms (11.1%)
Agent iast 1.206 s 111.208 ms (10.2%)
Agent profiling 1.286 s 190.823 ms (17.4%)
Total tracing 10.314 s -
Total appsec 10.62 s 306.04 ms (3.0%)
Total iast 10.793 s 478.896 ms (4.6%)
Total profiling 10.74 s 426.126 ms (4.1%)
gantt
    title petclinic - break down per module: candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (684.728 ms) : 0, 684728
BytebuddyAgent [candidate] (697.064 ms) : 0, 697064
GlobalTracer [baseline] (313.923 ms) : 0, 313923
GlobalTracer [candidate] (319.229 ms) : 0, 319229
AppSec [baseline] (53.924 ms) : 0, 53924
AppSec [candidate] (54.609 ms) : 0, 54609
Remote Config [baseline] (673.281 µs) : 0, 673
Remote Config [candidate] (689.02 µs) : 0, 689
Telemetry [baseline] (10.616 ms) : 0, 10616
Telemetry [candidate] (9.286 ms) : 0, 9286
section appsec
BytebuddyAgent [baseline] (702.216 ms) : 0, 702216
BytebuddyAgent [candidate] (705.055 ms) : 0, 705055
GlobalTracer [baseline] (311.86 ms) : 0, 311860
GlobalTracer [candidate] (313.08 ms) : 0, 313080
AppSec [baseline] (165.227 ms) : 0, 165227
AppSec [candidate] (165.227 ms) : 0, 165227
Remote Config [baseline] (639.522 µs) : 0, 640
Remote Config [candidate] (635.808 µs) : 0, 636
Telemetry [baseline] (7.765 ms) : 0, 7765
Telemetry [candidate] (8.483 ms) : 0, 8483
IAST [baseline] (20.1 ms) : 0, 20100
IAST [candidate] (19.264 ms) : 0, 19264
section iast
BytebuddyAgent [baseline] (798.342 ms) : 0, 798342
BytebuddyAgent [candidate] (802.422 ms) : 0, 802422
GlobalTracer [baseline] (303.515 ms) : 0, 303515
GlobalTracer [candidate] (304.025 ms) : 0, 304025
AppSec [baseline] (56.336 ms) : 0, 56336
AppSec [candidate] (56.424 ms) : 0, 56424
Remote Config [baseline] (615.824 µs) : 0, 616
Remote Config [candidate] (602.76 µs) : 0, 603
Telemetry [baseline] (7.417 ms) : 0, 7417
Telemetry [candidate] (7.408 ms) : 0, 7408
IAST [baseline] (21.19 ms) : 0, 21190
IAST [candidate] (21.305 ms) : 0, 21305
section profiling
ProfilingAgent [baseline] (93.737 ms) : 0, 93737
ProfilingAgent [candidate] (94.449 ms) : 0, 94449
BytebuddyAgent [baseline] (685.662 ms) : 0, 685662
BytebuddyAgent [candidate] (685.951 ms) : 0, 685951
GlobalTracer [baseline] (400.297 ms) : 0, 400297
GlobalTracer [candidate] (399.005 ms) : 0, 399005
AppSec [baseline] (54.843 ms) : 0, 54843
AppSec [candidate] (54.849 ms) : 0, 54849
Remote Config [baseline] (664.99 µs) : 0, 665
Remote Config [candidate] (682.931 µs) : 0, 683
Telemetry [baseline] (11.255 ms) : 0, 11255
Telemetry [candidate] (11.536 ms) : 0, 11536
Profiling [baseline] (93.761 ms) : 0, 93761
Profiling [candidate] (94.473 ms) : 0, 94473
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
end_time 2024-11-08T10:24:10 2024-11-08T10:31:06
git_branch master jpbempel/symdb-dedup-classes
git_commit_date 1731059698 1731060947
git_commit_sha 8b31030 60ab16c
release_version 1.43.0-SNAPSHOT~8b3103079b 1.43.0-SNAPSHOT~60ab16c83e
start_time 2024-11-08T10:23:57 2024-11-08T10:30:53
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1731062218 1731062218
ci_job_id 700286106 700286106
ci_pipeline_id 48543778 48543778
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant iast iast

Summary

Found 0 performance improvements and 1 performance regressions! Performance is the same for 11 metrics, 16 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:petclinic:profiling worse
[+38.026µs; +89.792µs] or [+2.540%; +5.997%]
unstable
[-685.724op/s; +457.804op/s] or [-22.286%; +14.879%]
1.561ms 2962.963op/s 1.497ms 3076.923op/s
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b
    dateFormat X
    axisFormat %s
section baseline
no_agent (373.025 µs) : 353, 393
.   : milestone, 373,
iast (495.566 µs) : 474, 517
.   : milestone, 496,
iast_FULL (653.821 µs) : 632, 675
.   : milestone, 654,
iast_GLOBAL (516.041 µs) : 495, 537
.   : milestone, 516,
iast_HARDCODED_SECRET_DISABLED (491.562 µs) : 470, 513
.   : milestone, 492,
iast_INACTIVE (454.313 µs) : 433, 475
.   : milestone, 454,
iast_TELEMETRY_OFF (475.516 µs) : 454, 497
.   : milestone, 476,
tracing (446.352 µs) : 425, 467
.   : milestone, 446,
section candidate
no_agent (371.747 µs) : 352, 391
.   : milestone, 372,
iast (488.891 µs) : 468, 510
.   : milestone, 489,
iast_FULL (647.479 µs) : 626, 669
.   : milestone, 647,
iast_GLOBAL (514.917 µs) : 494, 536
.   : milestone, 515,
iast_HARDCODED_SECRET_DISABLED (495.454 µs) : 474, 517
.   : milestone, 495,
iast_INACTIVE (448.54 µs) : 427, 470
.   : milestone, 449,
iast_TELEMETRY_OFF (480.213 µs) : 459, 502
.   : milestone, 480,
tracing (455.814 µs) : 435, 477
.   : milestone, 456,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 373.025 µs [353.337 µs, 392.714 µs] -
iast 495.566 µs [473.881 µs, 517.251 µs] 122.541 µs (32.9%)
iast_FULL 653.821 µs [632.471 µs, 675.171 µs] 280.796 µs (75.3%)
iast_GLOBAL 516.041 µs [494.908 µs, 537.175 µs] 143.016 µs (38.3%)
iast_HARDCODED_SECRET_DISABLED 491.562 µs [469.922 µs, 513.203 µs] 118.537 µs (31.8%)
iast_INACTIVE 454.313 µs [433.35 µs, 475.276 µs] 81.288 µs (21.8%)
iast_TELEMETRY_OFF 475.516 µs [454.354 µs, 496.677 µs] 102.491 µs (27.5%)
tracing 446.352 µs [425.225 µs, 467.479 µs] 73.327 µs (19.7%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 371.747 µs [352.199 µs, 391.295 µs] -
iast 488.891 µs [467.548 µs, 510.235 µs] 117.144 µs (31.5%)
iast_FULL 647.479 µs [625.7 µs, 669.258 µs] 275.732 µs (74.2%)
iast_GLOBAL 514.917 µs [493.951 µs, 535.883 µs] 143.17 µs (38.5%)
iast_HARDCODED_SECRET_DISABLED 495.454 µs [474.336 µs, 516.573 µs] 123.707 µs (33.3%)
iast_INACTIVE 448.54 µs [427.4 µs, 469.681 µs] 76.793 µs (20.7%)
iast_TELEMETRY_OFF 480.213 µs [458.899 µs, 501.528 µs] 108.466 µs (29.2%)
tracing 455.814 µs [434.53 µs, 477.098 µs] 84.067 µs (22.6%)
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.342 ms) : 1322, 1361
.   : milestone, 1342,
appsec (1.739 ms) : 1715, 1764
.   : milestone, 1739,
appsec_no_iast (1.745 ms) : 1721, 1769
.   : milestone, 1745,
iast (1.501 ms) : 1479, 1523
.   : milestone, 1501,
profiling (1.497 ms) : 1473, 1521
.   : milestone, 1497,
tracing (1.451 ms) : 1426, 1475
.   : milestone, 1451,
section candidate
no_agent (1.346 ms) : 1327, 1365
.   : milestone, 1346,
appsec (1.744 ms) : 1719, 1768
.   : milestone, 1744,
appsec_no_iast (1.735 ms) : 1711, 1759
.   : milestone, 1735,
iast (1.479 ms) : 1457, 1501
.   : milestone, 1479,
profiling (1.561 ms) : 1537, 1585
.   : milestone, 1561,
tracing (1.474 ms) : 1449, 1498
.   : milestone, 1474,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.342 ms [1.322 ms, 1.361 ms] -
appsec 1.739 ms [1.715 ms, 1.764 ms] 397.663 µs (29.6%)
appsec_no_iast 1.745 ms [1.721 ms, 1.769 ms] 403.14 µs (30.0%)
iast 1.501 ms [1.479 ms, 1.523 ms] 159.497 µs (11.9%)
profiling 1.497 ms [1.473 ms, 1.521 ms] 155.538 µs (11.6%)
tracing 1.451 ms [1.426 ms, 1.475 ms] 108.883 µs (8.1%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 1.346 ms [1.327 ms, 1.365 ms] -
appsec 1.744 ms [1.719 ms, 1.768 ms] 397.475 µs (29.5%)
appsec_no_iast 1.735 ms [1.711 ms, 1.759 ms] 388.576 µs (28.9%)
iast 1.479 ms [1.457 ms, 1.501 ms] 132.914 µs (9.9%)
profiling 1.561 ms [1.537 ms, 1.585 ms] 214.947 µs (16.0%)
tracing 1.474 ms [1.449 ms, 1.498 ms] 127.546 µs (9.5%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master jpbempel/symdb-dedup-classes
git_commit_date 1731059698 1731060947
git_commit_sha 8b31030 60ab16c
release_version 1.43.0-SNAPSHOT~8b3103079b 1.43.0-SNAPSHOT~60ab16c83e
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1731062747 1731062747
ci_job_id 700286107 700286107
ci_pipeline_id 48543778 48543778
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
variant appsec appsec

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.076 s) : 15076000, 15076000
.   : milestone, 15076000,
appsec (15.382 s) : 15382000, 15382000
.   : milestone, 15382000,
iast (19.077 s) : 19077000, 19077000
.   : milestone, 19077000,
iast_GLOBAL (18.273 s) : 18273000, 18273000
.   : milestone, 18273000,
profiling (14.905 s) : 14905000, 14905000
.   : milestone, 14905000,
tracing (15.044 s) : 15044000, 15044000
.   : milestone, 15044000,
section candidate
no_agent (15.369 s) : 15369000, 15369000
.   : milestone, 15369000,
appsec (15.342 s) : 15342000, 15342000
.   : milestone, 15342000,
iast (18.598 s) : 18598000, 18598000
.   : milestone, 18598000,
iast_GLOBAL (18.197 s) : 18197000, 18197000
.   : milestone, 18197000,
profiling (15.079 s) : 15079000, 15079000
.   : milestone, 15079000,
tracing (15.183 s) : 15183000, 15183000
.   : milestone, 15183000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.076 s [15.076 s, 15.076 s] -
appsec 15.382 s [15.382 s, 15.382 s] 306.0 ms (2.0%)
iast 19.077 s [19.077 s, 19.077 s] 4.001 s (26.5%)
iast_GLOBAL 18.273 s [18.273 s, 18.273 s] 3.197 s (21.2%)
profiling 14.905 s [14.905 s, 14.905 s] -171.0 ms (-1.1%)
tracing 15.044 s [15.044 s, 15.044 s] -32.0 ms (-0.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.369 s [15.369 s, 15.369 s] -
appsec 15.342 s [15.342 s, 15.342 s] -27.0 ms (-0.2%)
iast 18.598 s [18.598 s, 18.598 s] 3.229 s (21.0%)
iast_GLOBAL 18.197 s [18.197 s, 18.197 s] 2.828 s (18.4%)
profiling 15.079 s [15.079 s, 15.079 s] -290.0 ms (-1.9%)
tracing 15.183 s [15.183 s, 15.183 s] -186.0 ms (-1.2%)
Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.43.0-SNAPSHOT~60ab16c83e, baseline=1.43.0-SNAPSHOT~8b3103079b
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.472 ms) : 1460, 1483
.   : milestone, 1472,
appsec (2.336 ms) : 2295, 2378
.   : milestone, 2336,
iast (2.083 ms) : 2030, 2135
.   : milestone, 2083,
iast_GLOBAL (2.11 ms) : 2058, 2162
.   : milestone, 2110,
profiling (1.926 ms) : 1885, 1967
.   : milestone, 1926,
tracing (1.908 ms) : 1869, 1947
.   : milestone, 1908,
section candidate
no_agent (1.465 ms) : 1454, 1477
.   : milestone, 1465,
appsec (2.336 ms) : 2294, 2377
.   : milestone, 2336,
iast (2.079 ms) : 2027, 2132
.   : milestone, 2079,
iast_GLOBAL (2.133 ms) : 2079, 2186
.   : milestone, 2133,
profiling (1.943 ms) : 1900, 1986
.   : milestone, 1943,
tracing (1.919 ms) : 1879, 1959
.   : milestone, 1919,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.472 ms [1.46 ms, 1.483 ms] -
appsec 2.336 ms [2.295 ms, 2.378 ms] 864.512 µs (58.7%)
iast 2.083 ms [2.03 ms, 2.135 ms] 610.673 µs (41.5%)
iast_GLOBAL 2.11 ms [2.058 ms, 2.162 ms] 638.057 µs (43.3%)
profiling 1.926 ms [1.885 ms, 1.967 ms] 453.984 µs (30.8%)
tracing 1.908 ms [1.869 ms, 1.947 ms] 436.373 µs (29.6%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.465 ms [1.454 ms, 1.477 ms] -
appsec 2.336 ms [2.294 ms, 2.377 ms] 870.302 µs (59.4%)
iast 2.079 ms [2.027 ms, 2.132 ms] 613.964 µs (41.9%)
iast_GLOBAL 2.133 ms [2.079 ms, 2.186 ms] 667.217 µs (45.5%)
profiling 1.943 ms [1.9 ms, 1.986 ms] 477.84 µs (32.6%)
tracing 1.919 ms [1.879 ms, 1.959 ms] 453.787 µs (31.0%)

Set<String> localLoadedClasses = loadedClasses;
if (localLoadedClasses != null && !localLoadedClasses.add(className)) {
// class already loaded and symbol extracted
return;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand: Shouldn't we have filtered duplicates with this code already? 🤔

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only at reload time when we are processing already loaded classes.
after that we dropped the Set
Now it's permanent


void loadedClassesProcessEnded() {
loadedClasses = null;
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aha! I see now :) Thanks!

Copy link
Member

@ojung ojung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@jpbempel jpbempel merged commit ed6351d into master Nov 13, 2024
105 of 111 checks passed
@jpbempel jpbempel deleted the jpbempel/symdb-dedup-classes branch November 13, 2024 08:22
@github-actions github-actions bot added this to the 1.43.0 milestone Nov 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants