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

[ASM] Create new appsec waf benchmark with benchmark agent #4534

Merged
merged 3 commits into from
Aug 23, 2023

Conversation

anna-git
Copy link
Contributor

Summary of changes

Create new benchmark agent for future appsec waf benchmark

Reason for change

See PR #4528

Implementation details

Test coverage

Other details

@anna-git anna-git requested review from a team as code owners August 21, 2023 17:11
@datadog-ddstaging
Copy link

datadog-ddstaging bot commented Aug 21, 2023

Datadog Report

Branch report: anna/create-newbenchmark-agent
Commit report: b39968e

dd-trace-dotnet: 0 Failed, 0 New Flaky, 298950 Passed, 1115 Skipped, 22m 49.61s Wall Time

@andrewlock
Copy link
Member

andrewlock commented Aug 21, 2023

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4534) - mean (68ms)  : 66, 70
     .   : milestone, 68,
    master - mean (72ms)  : 62, 81
     .   : milestone, 72,

    section CallTarget+Inlining+NGEN
    This PR (4534) - mean (1,043ms)  : 1014, 1072
     .   : milestone, 1043,
    master - mean (1,035ms)  : 998, 1072
     .   : milestone, 1035,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4534) - mean (106ms)  : 104, 109
     .   : milestone, 106,
    master - mean (106ms)  : 99, 112
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (4534) - mean (737ms)  : 708, 766
     .   : milestone, 737,
    master - mean (731ms)  : 701, 761
     .   : milestone, 731,

Loading
gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4534) - mean (91ms)  : 87, 95
     .   : milestone, 91,
    master - mean (89ms)  : 86, 92
     .   : milestone, 89,

    section CallTarget+Inlining+NGEN
    This PR (4534) - mean (696ms)  : 671, 720
     .   : milestone, 696,
    master - mean (693ms)  : 657, 729
     .   : milestone, 693,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4534) - mean (191ms)  : 187, 196
     .   : milestone, 191,
    master - mean (191ms)  : 188, 194
     .   : milestone, 191,

    section CallTarget+Inlining+NGEN
    This PR (4534) - mean (1,165ms)  : 1105, 1226
     .   : milestone, 1165,
    master - mean (1,139ms)  : 1097, 1180
     .   : milestone, 1139,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4534) - mean (279ms)  : 262, 295
     .   : milestone, 279,
    master - mean (272ms)  : 265, 280
     .   : milestone, 272,

    section CallTarget+Inlining+NGEN
    This PR (4534) - mean (1,096ms)  : 1069, 1124
     .   : milestone, 1096,
    master - mean (1,113ms)  : 1081, 1144
     .   : milestone, 1113,

Loading
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (4534) - mean (264ms)  : 259, 270
     .   : milestone, 264,
    master - mean (272ms)  : 266, 279
     .   : milestone, 272,

    section CallTarget+Inlining+NGEN
    This PR (4534) - mean (1,054ms)  : 1024, 1084
     .   : milestone, 1054,
    master - mean (1,067ms)  : 1038, 1097
     .   : milestone, 1067,

Loading

@andrewlock
Copy link
Member

andrewlock commented Aug 21, 2023

Benchmarks Report 🐌

Benchmarks for #4534 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.155
  • 1 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 481μs 610ns 2.11μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 640μs 123ns 478ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 794μs 462ns 1.79μs 0.396 0 0 3.3 KB
#4534 WriteAndFlushEnrichedTraces net6.0 497μs 308ns 1.19μs 0 0 0 2.7 KB
#4534 WriteAndFlushEnrichedTraces netcoreapp3.1 625μs 349ns 1.35μs 0 0 0 2.7 KB
#4534 WriteAndFlushEnrichedTraces net472 828μs 434ns 1.62μs 0.414 0 0 3.3 KB
Benchmarks.Trace.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 39.5μs 27.6ns 103ns 0 0 0 1.69 KB
master AllCycleSimpleBody netcoreapp3.1 42.1μs 50.2ns 181ns 0.0207 0 0 1.67 KB
master AllCycleSimpleBody net472 43.8μs 13.4ns 50.1ns 0.258 0 0 1.73 KB
master AllCycleMoreComplexBody net6.0 231μs 204ns 790ns 0.116 0 0 9.26 KB
master AllCycleMoreComplexBody netcoreapp3.1 240μs 383ns 1.48μs 0.119 0 0 9.16 KB
master AllCycleMoreComplexBody net472 249μs 106ns 409ns 1.37 0 0 9.33 KB
master ObjectExtractorSimpleBody net6.0 171ns 0.0742ns 0.277ns 0.00395 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 176ns 0.0938ns 0.351ns 0.00373 0 0 272 B
master ObjectExtractorSimpleBody net472 146ns 0.338ns 1.22ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 3.2μs 1.62ns 5.84ns 0.0543 0 0 3.88 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.1μs 1.9ns 7.1ns 0.0512 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.13μs 4.11ns 15.9ns 0.617 0.00624 0 3.89 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
#4534 AllCycleSimpleBody net6.0 39.2μs 26.6ns 99.6ns 0.0197 0 0 1.69 KB
#4534 AllCycleSimpleBody netcoreapp3.1 41.5μs 23.2ns 87ns 0.0207 0 0 1.67 KB
#4534 AllCycleSimpleBody net472 43.6μs 132ns 513ns 0.258 0 0 1.73 KB
#4534 AllCycleMoreComplexBody net6.0 232μs 206ns 772ns 0.115 0 0 9.26 KB
#4534 AllCycleMoreComplexBody netcoreapp3.1 240μs 321ns 1.25μs 0.119 0 0 9.16 KB
#4534 AllCycleMoreComplexBody net472 250μs 83.9ns 314ns 1.38 0 0 9.33 KB
#4534 ObjectExtractorSimpleBody net6.0 124ns 0.0578ns 0.216ns 0.00393 0 0 280 B
#4534 ObjectExtractorSimpleBody netcoreapp3.1 179ns 0.331ns 1.28ns 0.00377 0 0 272 B
#4534 ObjectExtractorSimpleBody net472 145ns 0.123ns 0.478ns 0.0446 0 0 281 B
#4534 ObjectExtractorMoreComplexBody net6.0 3.16μs 1.15ns 4.13ns 0.0552 0 0 3.88 KB
#4534 ObjectExtractorMoreComplexBody netcoreapp3.1 3.98μs 1.7ns 6.57ns 0.0516 0 0 3.78 KB
#4534 ObjectExtractorMoreComplexBody net472 4.17μs 1.65ns 6.16ns 0.616 0.00629 0 3.89 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
#4534 RunWaf(args=Syste(...)ject] [68]) net6.0 120μs 702ns 6.32μs 0 0 0 17.62 KB
#4534 RunWaf(args=Syste(...)ject] [68]) net6.0 245μs 2.07μs 20.1μs 0 0 0 37.95 KB
#4534 RunWaf(args=Syste(...)ject] [68]) net6.0 230μs 1.26μs 7.69μs 0 0 0 37.95 KB
#4534 RunWaf(args=Syste(...)ject] [68]) netcoreapp3.1 130μs 735ns 4.76μs 0 0 0 16.79 KB
#4534 RunWaf(args=Syste(...)ject] [68]) netcoreapp3.1 263μs 1.53μs 14.2μs 0 0 0 37.78 KB
#4534 RunWaf(args=Syste(...)ject] [68]) netcoreapp3.1 262μs 606ns 2.1μs 0 0 0 37.78 KB
#4534 RunWaf(args=Syste(...)ject] [68]) net472 125μs 316ns 1.18μs 0 0 0 24.58 KB
#4534 RunWaf(args=Syste(...)ject] [68]) net472 258μs 1.31μs 5.84μs 0 0 0 40.96 KB
#4534 RunWaf(args=Syste(...)ject] [68]) net472 262μs 1.13μs 4.06μs 0 0 0 40.96 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 168μs 146ns 565ns 0.251 0 0 18.08 KB
master SendRequest netcoreapp3.1 192μs 306ns 1.15μs 0.191 0 0 20.14 KB
master SendRequest net472 0.000947ns 0.000235ns 0.00088ns 0 0 0 0 b
#4534 SendRequest net6.0 168μs 113ns 424ns 0.253 0 0 18.08 KB
#4534 SendRequest netcoreapp3.1 191μs 277ns 1.07μs 0.19 0 0 20.14 KB
#4534 SendRequest net472 0.000152ns 0.000105ns 0.000394ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #4534

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.63 KB 41.84 KB 211 B 0.51%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 533μs 218ns 815ns 0.519 0 0 41.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 633μs 1.6μs 6.2μs 0.317 0 0 41.63 KB
master WriteAndFlushEnrichedTraces net472 801μs 2.38μs 9.21μs 8.31 2.37 0.396 53.23 KB
#4534 WriteAndFlushEnrichedTraces net6.0 521μs 190ns 713ns 0.498 0 0 41.74 KB
#4534 WriteAndFlushEnrichedTraces netcoreapp3.1 619μs 611ns 2.29μs 0.306 0 0 41.84 KB
#4534 WriteAndFlushEnrichedTraces net472 770μs 2.78μs 10.7μs 8.15 2.33 0.388 53.21 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.15μs 0.36ns 1.4ns 0.0106 0 0 768 B
master ExecuteNonQuery netcoreapp3.1 1.43μs 0.615ns 2.38ns 0.01 0 0 768 B
master ExecuteNonQuery net472 1.64μs 0.576ns 2.23ns 0.116 0.000823 0 730 B
#4534 ExecuteNonQuery net6.0 1.08μs 0.489ns 1.9ns 0.0108 0 0 768 B
#4534 ExecuteNonQuery netcoreapp3.1 1.42μs 0.823ns 3.19ns 0.00994 0 0 768 B
#4534 ExecuteNonQuery net472 1.77μs 0.346ns 1.29ns 0.115 0.000882 0 730 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.19μs 0.547ns 1.97ns 0.0138 0 0 992 B
master CallElasticsearch netcoreapp3.1 1.44μs 0.461ns 1.72ns 0.013 0 0 992 B
master CallElasticsearch net472 2.26μs 0.519ns 1.94ns 0.159 0.00113 0 1 KB
master CallElasticsearchAsync net6.0 1.28μs 0.917ns 3.55ns 0.0134 0 0 968 B
master CallElasticsearchAsync netcoreapp3.1 1.57μs 0.895ns 3.47ns 0.0142 0 0 1.04 KB
master CallElasticsearchAsync net472 2.58μs 0.914ns 3.42ns 0.168 0.00129 0 1.06 KB
#4534 CallElasticsearch net6.0 1.28μs 0.451ns 1.75ns 0.0141 0 0 992 B
#4534 CallElasticsearch netcoreapp3.1 1.42μs 0.981ns 3.67ns 0.0134 0 0 992 B
#4534 CallElasticsearch net472 2.31μs 0.375ns 1.4ns 0.159 0.00116 0 1 KB
#4534 CallElasticsearchAsync net6.0 1.3μs 0.408ns 1.58ns 0.0131 0 0 968 B
#4534 CallElasticsearchAsync netcoreapp3.1 1.5μs 0.402ns 1.5ns 0.0143 0 0 1.04 KB
#4534 CallElasticsearchAsync net472 2.51μs 0.705ns 2.64ns 0.168 0 0 1.06 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.24μs 0.606ns 2.35ns 0.0129 0 0 912 B
master ExecuteAsync netcoreapp3.1 1.49μs 3.26ns 12.6ns 0.0118 0 0 912 B
master ExecuteAsync net472 1.72μs 1.8ns 6.98ns 0.138 0.000849 0 875 B
#4534 ExecuteAsync net6.0 1.18μs 0.43ns 1.66ns 0.013 0 0 912 B
#4534 ExecuteAsync netcoreapp3.1 1.51μs 0.608ns 2.35ns 0.012 0 0 912 B
#4534 ExecuteAsync net472 1.74μs 1.95ns 7.57ns 0.138 0 0 875 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 4.01μs 1.58ns 5.71ns 0.026 0 0 1.94 KB
master SendAsync netcoreapp3.1 4.54μs 1.34ns 5.02ns 0.0333 0 0 2.48 KB
master SendAsync net472 7.05μs 2.6ns 10.1ns 0.483 0 0 3.05 KB
#4534 SendAsync net6.0 3.86μs 2.43ns 9.4ns 0.0269 0 0 1.94 KB
#4534 SendAsync netcoreapp3.1 4.44μs 1.16ns 4.18ns 0.0333 0 0 2.48 KB
#4534 SendAsync net472 7.03μs 2.24ns 8.69ns 0.482 0 0 3.05 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.37μs 0.536ns 2.01ns 0.0226 0 0 1.62 KB
master EnrichedLog netcoreapp3.1 2.01μs 0.929ns 3.48ns 0.0221 0 0 1.62 KB
master EnrichedLog net472 2.35μs 1.25ns 4.84ns 0.245 0 0 1.54 KB
#4534 EnrichedLog net6.0 1.3μs 0.728ns 2.82ns 0.0228 0 0 1.62 KB
#4534 EnrichedLog netcoreapp3.1 1.92μs 0.765ns 2.86ns 0.0216 0 0 1.62 KB
#4534 EnrichedLog net472 2.28μs 2.86ns 11.1ns 0.244 0 0 1.54 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 114μs 147ns 570ns 0.0564 0 0 4.21 KB
master EnrichedLog netcoreapp3.1 120μs 283ns 1.1μs 0 0 0 4.21 KB
master EnrichedLog net472 148μs 172ns 666ns 0.665 0.222 0 4.38 KB
#4534 EnrichedLog net6.0 112μs 130ns 502ns 0.0559 0 0 4.21 KB
#4534 EnrichedLog netcoreapp3.1 118μs 116ns 432ns 0.0588 0 0 4.21 KB
#4534 EnrichedLog net472 149μs 129ns 499ns 0.67 0.223 0 4.38 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.92μs 1.09ns 4.21ns 0.0306 0 0 2.18 KB
master EnrichedLog netcoreapp3.1 4.03μs 1.44ns 5.4ns 0.0282 0 0 2.18 KB
master EnrichedLog net472 4.58μs 1.01ns 3.9ns 0.315 0 0 1.99 KB
#4534 EnrichedLog net6.0 2.78μs 0.877ns 3.28ns 0.0305 0 0 2.18 KB
#4534 EnrichedLog netcoreapp3.1 3.89μs 1.36ns 5.08ns 0.0289 0 0 2.18 KB
#4534 EnrichedLog net472 4.5μs 0.806ns 3.02ns 0.315 0 0 1.99 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.39μs 0.427ns 1.65ns 0.0161 0 0 1.16 KB
master SendReceive netcoreapp3.1 1.57μs 0.573ns 2.15ns 0.0158 0 0 1.16 KB
master SendReceive net472 2.14μs 0.806ns 2.91ns 0.184 0 0 1.16 KB
#4534 SendReceive net6.0 1.35μs 0.662ns 2.48ns 0.0161 0 0 1.16 KB
#4534 SendReceive netcoreapp3.1 1.63μs 0.581ns 2.09ns 0.0155 0 0 1.16 KB
#4534 SendReceive net472 2.1μs 2.23ns 8.63ns 0.184 0.00105 0 1.16 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.61μs 0.967ns 3.74ns 0.0209 0 0 1.53 KB
master EnrichedLog netcoreapp3.1 3.65μs 2.42ns 9.36ns 0.02 0 0 1.58 KB
master EnrichedLog net472 4.09μs 2.37ns 9.19ns 0.311 0 0 1.96 KB
#4534 EnrichedLog net6.0 2.5μs 0.886ns 3.32ns 0.0212 0 0 1.53 KB
#4534 EnrichedLog netcoreapp3.1 3.52μs 0.929ns 3.48ns 0.0212 0 0 1.58 KB
#4534 EnrichedLog net472 4.15μs 1.31ns 5.08ns 0.311 0 0 1.96 KB
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️

Slower ⚠️ in #4534

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 1.155 446.95 516.03

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 447ns 0.152ns 0.568ns 0.00741 0 0 536 B
master StartFinishSpan netcoreapp3.1 548ns 0.276ns 1.07ns 0.00712 0 0 536 B
master StartFinishSpan net472 727ns 0.274ns 1.02ns 0.0851 0 0 538 B
master StartFinishScope net6.0 523ns 0.383ns 1.43ns 0.00921 0 0 656 B
master StartFinishScope netcoreapp3.1 746ns 0.195ns 0.755ns 0.00877 0 0 656 B
master StartFinishScope net472 885ns 0.627ns 2.35ns 0.0978 0 0 618 B
#4534 StartFinishSpan net6.0 516ns 0.139ns 0.522ns 0.00751 0 0 536 B
#4534 StartFinishSpan netcoreapp3.1 573ns 2.02ns 7.81ns 0.0073 0 0 536 B
#4534 StartFinishSpan net472 695ns 0.184ns 0.712ns 0.0851 0 0 538 B
#4534 StartFinishScope net6.0 470ns 0.0798ns 0.276ns 0.00913 0 0 656 B
#4534 StartFinishScope netcoreapp3.1 754ns 0.28ns 1.05ns 0.009 0 0 656 B
#4534 StartFinishScope net472 840ns 0.628ns 2.35ns 0.098 0 0 618 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 616ns 0.299ns 1.04ns 0.00913 0 0 656 B
master RunOnMethodBegin netcoreapp3.1 750ns 2.4ns 9.3ns 0.00898 0 0 656 B
master RunOnMethodBegin net472 1.04μs 0.479ns 1.73ns 0.0981 0 0 618 B
#4534 RunOnMethodBegin net6.0 651ns 0.184ns 0.688ns 0.00921 0 0 656 B
#4534 RunOnMethodBegin netcoreapp3.1 807ns 0.27ns 1.01ns 0.0089 0 0 656 B
#4534 RunOnMethodBegin net472 1μs 0.312ns 1.17ns 0.098 0 0 618 B

@andrewlock
Copy link
Member

andrewlock commented Aug 21, 2023

Throughput/Crank Report:zap:

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4534) (11.814M)   : 0, 11814297
    master (11.670M)   : 0, 11670237
    benchmarks/2.35.0 (11.453M)   : 0, 11452799
    benchmarks/2.9.0 (11.287M)   : 0, 11286905

    section Automatic
    This PR (4534) (8.266M)   : 0, 8265902
    master (8.130M)   : 0, 8130148
    benchmarks/2.35.0 (7.841M)   : 0, 7841477
    benchmarks/2.9.0 (8.116M)   : 0, 8115633

    section Trace stats
    master (8.153M)   : 0, 8152663
    benchmarks/2.35.0 (7.899M)   : 0, 7899324

    section Manual
    This PR (4534) (10.370M)   : 0, 10369515
    master (10.352M)   : 0, 10351952
    benchmarks/2.35.0 (9.903M)   : 0, 9903023

    section Manual + Automatic
    This PR (4534) (7.931M)   : 0, 7931042
    master (7.787M)   : 0, 7787155
    benchmarks/2.35.0 (7.605M)   : 0, 7605351

    section Version Conflict
    master (7.099M)   : 0, 7098797
    benchmarks/2.35.0 (6.898M)   : 0, 6898055

Loading
gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4534) (9.740M)   : 0, 9739675
    master (9.788M)   : 0, 9787937
    benchmarks/2.35.0 (9.686M)   : 0, 9685633
    benchmarks/2.9.0 (9.699M)   : 0, 9698861

    section Automatic
    This PR (4534) (6.783M)   : 0, 6782742
    master (6.805M)   : 0, 6804532
    benchmarks/2.35.0 (6.735M)   : 0, 6734974

    section Trace stats
    master (6.857M)   : 0, 6856811
    benchmarks/2.35.0 (6.706M)   : 0, 6705828

    section Manual
    This PR (4534) (8.438M)   : 0, 8438446
    master (8.517M)   : 0, 8516839
    benchmarks/2.35.0 (8.521M)   : 0, 8521317

    section Manual + Automatic
    This PR (4534) (6.471M)   : 0, 6471351
    master (6.519M)   : 0, 6519037
    benchmarks/2.35.0 (6.667M)   : 0, 6667405

    section Version Conflict
    master (6.014M)   : 0, 6013786
    benchmarks/2.35.0 (5.908M)   : 0, 5908314

Loading
gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4534) (10.284M)   : 0, 10283730
    master (10.169M)   : 0, 10168980
    benchmarks/2.9.0 (10.400M)   : 0, 10399686

    section Automatic
    This PR (4534) (7.407M)   : 0, 7407101
    master (7.309M)   : 0, 7309026
    benchmarks/2.9.0 (7.543M)   : 0, 7542592

    section Trace stats
    master (7.248M)   : 0, 7247590

    section Manual
    This PR (4534) (9.234M)   : 0, 9234263
    master (9.089M)   : 0, 9089110

    section Manual + Automatic
    This PR (4534) (7.068M)   : 0, 7068390
    master (7.043M)   : 0, 7042940

    section Version Conflict
    master (6.531M)   : 0, 6531491

Loading
gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (4534) (7.487M)   : 0, 7486985
    master (7.473M)   : 0, 7473344
    benchmarks/2.35.0 (7.114M)   : 0, 7114084
    benchmarks/2.9.0 (7.855M)   : 0, 7854547

    section No attack
    This PR (4534) (2.144M)   : 0, 2143875
    master (2.129M)   : 0, 2128560
    benchmarks/2.35.0 (2.106M)   : 0, 2105610
    benchmarks/2.9.0 (3.153M)   : 0, 3152853

    section Attack
    This PR (4534) (1.665M)   : 0, 1665423
    master (1.670M)   : 0, 1669933
    benchmarks/2.35.0 (1.811M)   : 0, 1810650
    benchmarks/2.9.0 (2.502M)   : 0, 2501906

    section Blocking
    This PR (4534) (3.152M)   : 0, 3152383
    master (3.098M)   : 0, 3098162
    benchmarks/2.35.0 (3.540M)   : 0, 3539761

Loading

Copy link
Member

@andrewlock andrewlock left a comment

Choose a reason for hiding this comment

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

Awesome, thanks for doing this 🙂

* Add benchmark for waf run

* Change code owners file

* try iteration cleanup instead

* Try going back to normal as Iteration cleanup seems to have solved it
@anna-git anna-git changed the title Create new benchmark agent for future appsec waf benchmark [ASM] Create new appsec waf benchmark with benchmark agent Aug 23, 2023
@anna-git anna-git merged commit 6d7a356 into master Aug 23, 2023
@anna-git anna-git deleted the anna/create-newbenchmark-agent branch August 23, 2023 15:27
@github-actions github-actions bot added this to the vNext milestone Aug 23, 2023
@andrewlock andrewlock mentioned this pull request Aug 24, 2023
1 task
NachoEchevarria pushed a commit that referenced this pull request Aug 29, 2023
* Add new benchmark agent in the pipeline

* Add benchmark agent attribute for future benchmarks

* [ASM] Add a benchmark for waf run (#4528)

* Add benchmark for waf run

* Change code owners file

* try iteration cleanup instead

* Try going back to normal as Iteration cleanup seems to have solved it
@robertpi robertpi added area:benchmarks Benchmarks, throughput tests, Crank, Bombardier, etc area:asm labels Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:asm area:benchmarks Benchmarks, throughput tests, Crank, Bombardier, etc
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants