dd-trace-dotnet icon indicating copy to clipboard operation
dd-trace-dotnet copied to clipboard

Investigate issues when OpenTelemetry is enabled

Open bouwkast opened this issue 1 year ago • 5 comments

Summary of changes

Testing out and attempting to fix any issues that arise when enabling OpenTelemetry

Reason for change

Implementation details

Test coverage

Other details

bouwkast avatar Mar 11 '24 18:03 bouwkast

Datadog Report

Branch report: steven/default-opentelemetry Commit report: 38f1422 Test service: dd-trace-dotnet

:x: 272 Failed (0 Known Flaky), 256269 Passed, 1375 Skipped, 40m 35.79s Wall Time

:x: Failed Tests (272)

This report shows up to 5 failed tests.

  • SubmitsTracesInMySql8 - Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MySqlCommandTests

  • SubmitsTracesInMySql8 - Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MySqlCommandTests

  • SubmitsTracesInMySql8 - Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MySqlCommandTests

  • SubmitsTracesInMySql8 - Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MySqlCommandTests

  • SubmitsTracesInMySql8 - Datadog.Trace.ClrProfiler.IntegrationTests.AdoNet.MySqlCommandTests

datadog-ddstaging[bot] avatar Mar 11 '24 18:03 datadog-ddstaging[bot]

Execution-Time Benchmarks Report :stopwatch:

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 (5300) - mean (74ms)  : 63, 85
     .   : milestone, 74,
    master - mean (72ms)  : 63, 81
     .   : milestone, 72,

    section CallTarget+Inlining+NGEN
    This PR (5300) - mean (989ms)  : 965, 1013
     .   : milestone, 989,
    master - mean (988ms)  : 965, 1011
     .   : milestone, 988,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5300) - mean (111ms)  : 107, 114
     .   : milestone, 111,
    master - mean (112ms)  : 107, 117
     .   : milestone, 112,

    section CallTarget+Inlining+NGEN
    This PR (5300) - mean (732ms)  : 715, 748
     .   : milestone, 732,
    master - mean (712ms)  : 691, 733
     .   : milestone, 712,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5300) - mean (94ms)  : 91, 97
     .   : milestone, 94,
    master - mean (93ms)  : 91, 96
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (5300) - mean (688ms)  : 667, 709
     .   : milestone, 688,
    master - mean (667ms)  : 649, 686
     .   : milestone, 667,

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

    section CallTarget+Inlining+NGEN
    This PR (5300) - mean (1,071ms)  : 1047, 1095
     .   : milestone, 1071,
    master - mean (1,059ms)  : 1035, 1083
     .   : milestone, 1059,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5300) - mean (270ms)  : 267, 274
     .   : milestone, 270,
    master - mean (271ms)  : 267, 274
     .   : milestone, 271,

    section CallTarget+Inlining+NGEN
    This PR (5300) - mean (883ms)  : 860, 905
     .   : milestone, 883,
    master - mean (866ms)  : 841, 890
     .   : milestone, 866,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5300) - mean (260ms)  : 257, 264
     .   : milestone, 260,
    master - mean (260ms)  : 256, 265
     .   : milestone, 260,

    section CallTarget+Inlining+NGEN
    This PR (5300) - mean (869ms)  : 848, 889
     .   : milestone, 869,
    master - mean (852ms)  : 823, 880
     .   : milestone, 852,

andrewlock avatar Mar 11 '24 20:03 andrewlock

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 (5300) (10.708M)   : 0, 10708084
    master (11.387M)   : 0, 11386870
    benchmarks/2.9.0 (11.099M)   : 0, 11099186

    section Automatic
    This PR (5300) (7.125M)   : crit ,0, 7124712
    master (7.766M)   : 0, 7766388
    benchmarks/2.9.0 (7.823M)   : 0, 7823285

    section Trace stats
    This PR (5300) (7.378M)   : crit ,0, 7378242
    master (8.071M)   : 0, 8071440

    section Manual
    This PR (5300) (9.313M)   : crit ,0, 9313093
    master (9.806M)   : 0, 9806449

    section Manual + Automatic
    This PR (5300) (6.859M)   : crit ,0, 6859394
    master (7.297M)   : 0, 7297336

    section Version Conflict
    This PR (5300) (6.082M)   : crit ,0, 6082417
    master (6.603M)   : 0, 6602958

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5300) (9.499M)   : 0, 9498750
    master (9.706M)   : 0, 9706267
    benchmarks/2.9.0 (9.709M)   : 0, 9708719

    section Automatic
    This PR (5300) (6.171M)   : crit ,0, 6171047
    master (6.592M)   : 0, 6591996

    section Trace stats
    This PR (5300) (6.511M)   : crit ,0, 6511402
    master (6.912M)   : 0, 6912452

    section Manual
    This PR (5300) (8.457M)   : 0, 8457076
    master (8.134M)   : 0, 8134221

    section Manual + Automatic
    This PR (5300) (5.922M)   : 0, 5921933
    master (6.177M)   : 0, 6177016

    section Version Conflict
    This PR (5300) (5.360M)   : 0, 5359984
    master (5.622M)   : 0, 5621557

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5300) (9.894M)   : 0, 9894478
    master (10.038M)   : 0, 10037686
    benchmarks/2.9.0 (10.184M)   : 0, 10183565

    section Automatic
    This PR (5300) (6.682M)   : crit ,0, 6681779
    master (7.146M)   : 0, 7146271
    benchmarks/2.9.0 (7.254M)   : 0, 7253763

    section Trace stats
    This PR (5300) (7.016M)   : crit ,0, 7016126
    master (7.389M)   : 0, 7389237

    section Manual
    This PR (5300) (8.671M)   : 0, 8670894
    master (8.795M)   : 0, 8795107

    section Manual + Automatic
    This PR (5300) (6.469M)   : crit ,0, 6469148
    master (6.908M)   : 0, 6907539

    section Version Conflict
    This PR (5300) (5.877M)   : crit ,0, 5876937
    master (6.366M)   : 0, 6365847

andrewlock avatar Mar 12 '24 07:03 andrewlock

Benchmarks Report :snail:

Benchmarks for #5300 compared to master:

  • 3 benchmarks are faster, with geometric mean 1.126
  • 2 benchmarks are slower, with geometric mean 1.142
  • 2 benchmarks have fewer allocations
  • 4 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.ActivityBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 8.78μs 50.2ns 362ns 0.0221 0.00884 0 7.48 KB
master StartStopWithChild netcoreapp3.1 10.7μs 60.9ns 444ns 0.036 0.0154 0.00514 7.59 KB
master StartStopWithChild net472 17.4μs 31ns 120ns 1.31 0.326 0.0944 7.95 KB
#5300 StartStopWithChild net6.0 8.91μs 46.7ns 242ns 0.0224 0.00897 0 7.49 KB
#5300 StartStopWithChild netcoreapp3.1 10.7μs 57.4ns 304ns 0.0263 0.0105 0 7.58 KB
#5300 StartStopWithChild net472 17.4μs 52.5ns 204ns 1.34 0.348 0.11 7.97 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 447μs 130ns 469ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 609μs 288ns 1.12μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 803μs 512ns 1.98μs 0.403 0 0 3.3 KB
#5300 WriteAndFlushEnrichedTraces net6.0 443μs 250ns 967ns 0 0 0 2.7 KB
#5300 WriteAndFlushEnrichedTraces netcoreapp3.1 623μs 219ns 820ns 0 0 0 2.7 KB
#5300 WriteAndFlushEnrichedTraces net472 811μs 367ns 1.37μs 0.406 0 0 3.3 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #5300

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.129 220.88 195.60

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 40.7μs 12.8ns 49.5ns 0.0206 0 0 2.36 KB
master AllCycleSimpleBody netcoreapp3.1 43.8μs 29.7ns 107ns 0.0219 0 0 2.34 KB
master AllCycleSimpleBody net472 46.5μs 19.6ns 75.8ns 0.373 0 0 2.41 KB
master AllCycleMoreComplexBody net6.0 217μs 125ns 468ns 0.108 0 0 9.84 KB
master AllCycleMoreComplexBody netcoreapp3.1 229μs 119ns 412ns 0.114 0 0 9.73 KB
master AllCycleMoreComplexBody net472 240μs 86.1ns 334ns 1.55 0 0 9.91 KB
master ObjectExtractorSimpleBody net6.0 145ns 0.0831ns 0.311ns 0.00394 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 221ns 0.21ns 0.785ns 0.0037 0 0 272 B
master ObjectExtractorSimpleBody net472 173ns 0.137ns 0.532ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 2.97μs 1.32ns 4.94ns 0.0537 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.16μs 3.14ns 12.2ns 0.0497 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.87μs 2.78ns 10.8ns 0.603 0.00578 0 3.8 KB
#5300 AllCycleSimpleBody net6.0 41μs 25ns 96.7ns 0.0208 0 0 2.36 KB
#5300 AllCycleSimpleBody netcoreapp3.1 44.4μs 48.4ns 187ns 0.0223 0 0 2.34 KB
#5300 AllCycleSimpleBody net472 46.9μs 21.7ns 81.4ns 0.372 0 0 2.41 KB
#5300 AllCycleMoreComplexBody net6.0 220μs 174ns 674ns 0.109 0 0 9.84 KB
#5300 AllCycleMoreComplexBody netcoreapp3.1 227μs 72ns 279ns 0.114 0 0 9.73 KB
#5300 AllCycleMoreComplexBody net472 242μs 34.4ns 129ns 1.57 0 0 9.91 KB
#5300 ObjectExtractorSimpleBody net6.0 143ns 0.0729ns 0.263ns 0.00397 0 0 280 B
#5300 ObjectExtractorSimpleBody netcoreapp3.1 196ns 0.121ns 0.451ns 0.00364 0 0 272 B
#5300 ObjectExtractorSimpleBody net472 172ns 0.189ns 0.732ns 0.0446 0 0 281 B
#5300 ObjectExtractorMoreComplexBody net6.0 3.01μs 11ns 42.7ns 0.0532 0 0 3.78 KB
#5300 ObjectExtractorMoreComplexBody netcoreapp3.1 3.96μs 1.89ns 7.32ns 0.0495 0 0 3.69 KB
#5300 ObjectExtractorMoreComplexBody net472 3.84μs 2.09ns 7.83ns 0.603 0.00579 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 32.2μs 12.5ns 46.6ns 0.388 0 0 27.94 KB
master EncodeArgs netcoreapp3.1 47.1μs 35.5ns 133ns 0.375 0 0 27.94 KB
master EncodeArgs net472 60μs 40.3ns 156ns 4.43 0.0602 0 28.03 KB
master EncodeLegacyArgs net6.0 97.8μs 116ns 401ns 0.425 0 0 30.34 KB
master EncodeLegacyArgs netcoreapp3.1 127μs 439ns 1.58μs 0.306 0 0 30.34 KB
master EncodeLegacyArgs net472 179μs 100ns 387ns 4.82 0.357 0 30.44 KB
#5300 EncodeArgs net6.0 31.8μs 16.3ns 58.7ns 0.384 0 0 27.94 KB
#5300 EncodeArgs netcoreapp3.1 45.7μs 33.5ns 121ns 0.365 0 0 27.94 KB
#5300 EncodeArgs net472 58.8μs 35.2ns 132ns 4.45 0.0589 0 28.03 KB
#5300 EncodeLegacyArgs net6.0 102μs 446ns 1.61μs 0.437 0.0486 0 30.34 KB
#5300 EncodeLegacyArgs netcoreapp3.1 125μs 537ns 2.08μs 0.367 0 0 30.35 KB
#5300 EncodeLegacyArgs net472 184μs 98.8ns 383ns 4.84 0.365 0 30.44 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 192μs 406ns 1.57μs 0.095 0 0 6.51 KB
master RunWafRealisticBenchmark netcoreapp3.1 204μs 313ns 1.21μs 0 0 0 6.49 KB
master RunWafRealisticBenchmark net472 224μs 150ns 582ns 1 0 0 6.59 KB
master RunWafRealisticBenchmarkWithAttack net6.0 127μs 67.1ns 251ns 0 0 0 4.15 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 136μs 226ns 874ns 0 0 0 4.14 KB
master RunWafRealisticBenchmarkWithAttack net472 148μs 48.2ns 187ns 0.666 0 0 4.19 KB
#5300 RunWafRealisticBenchmark net6.0 190μs 124ns 482ns 0.0954 0 0 6.51 KB
#5300 RunWafRealisticBenchmark netcoreapp3.1 202μs 193ns 723ns 0 0 0 6.49 KB
#5300 RunWafRealisticBenchmark net472 227μs 103ns 398ns 1.02 0 0 6.59 KB
#5300 RunWafRealisticBenchmarkWithAttack net6.0 127μs 141ns 545ns 0.0633 0 0 4.15 KB
#5300 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 134μs 233ns 902ns 0 0 0 4.14 KB
#5300 RunWafRealisticBenchmarkWithAttack net472 150μs 27.9ns 104ns 0.597 0 0 4.19 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5300

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑netcoreapp3.1 20.46 KB 20.85 KB 384 B 1.88%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 168μs 111ns 431ns 0.168 0 0 18.3 KB
master SendRequest netcoreapp3.1 193μs 297ns 1.15μs 0.193 0 0 20.46 KB
master SendRequest net472 0.00116ns 0.000408ns 0.00158ns 0 0 0 0 b
#5300 SendRequest net6.0 180μs 275ns 1.06μs 0.181 0 0 18.26 KB
#5300 SendRequest netcoreapp3.1 203μs 249ns 964ns 0.201 0 0 20.85 KB
#5300 SendRequest net472 0.000815ns 0.000477ns 0.00179ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5300

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.36 KB 41.81 KB 453 B 1.10%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.7 KB 41.91 KB 210 B 0.50%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 549μs 783ns 3.03μs 0.571 0 0 41.36 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 665μs 1.24μs 4.62μs 0.331 0 0 41.7 KB
master WriteAndFlushEnrichedTraces net472 835μs 2.56μs 9.9μs 8.33 2.5 0.417 53.25 KB
#5300 WriteAndFlushEnrichedTraces net6.0 562μs 1.84μs 7.12μs 0.556 0 0 41.81 KB
#5300 WriteAndFlushEnrichedTraces netcoreapp3.1 666μs 2.12μs 8.23μs 0.338 0 0 41.91 KB
#5300 WriteAndFlushEnrichedTraces net472 855μs 2.36μs 9.13μs 8.28 2.48 0.414 53.25 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.18μs 0.701ns 2.71ns 0.0107 0 0 776 B
master ExecuteNonQuery netcoreapp3.1 1.57μs 0.796ns 3.08ns 0.0102 0 0 776 B
master ExecuteNonQuery net472 1.72μs 1.35ns 4.67ns 0.117 0 0 738 B
#5300 ExecuteNonQuery net6.0 1.09μs 0.658ns 2.55ns 0.0108 0 0 776 B
#5300 ExecuteNonQuery netcoreapp3.1 1.51μs 5.75ns 22.3ns 0.00981 0 0 776 B
#5300 ExecuteNonQuery net472 1.74μs 4.12ns 15.9ns 0.117 0 0 738 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.29μs 0.966ns 3.74ns 0.0141 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.61μs 1.21ns 4.68ns 0.013 0 0 1 KB
master CallElasticsearch net472 2.43μs 1.2ns 4.47ns 0.16 0 0 1.01 KB
master CallElasticsearchAsync net6.0 1.25μs 0.744ns 2.88ns 0.0137 0 0 976 B
master CallElasticsearchAsync netcoreapp3.1 1.67μs 0.8ns 2.99ns 0.014 0 0 1.05 KB
master CallElasticsearchAsync net472 2.69μs 2.08ns 8.04ns 0.169 0 0 1.07 KB
#5300 CallElasticsearch net6.0 1.37μs 1.3ns 4.86ns 0.0137 0 0 1 KB
#5300 CallElasticsearch netcoreapp3.1 1.57μs 1.2ns 4.49ns 0.0134 0 0 1 KB
#5300 CallElasticsearch net472 2.6μs 1.64ns 6.34ns 0.16 0 0 1.01 KB
#5300 CallElasticsearchAsync net6.0 1.33μs 0.718ns 2.69ns 0.0139 0 0 976 B
#5300 CallElasticsearchAsync netcoreapp3.1 1.7μs 0.791ns 2.96ns 0.0143 0 0 1.05 KB
#5300 CallElasticsearchAsync net472 2.63μs 2ns 7.76ns 0.169 0 0 1.07 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.42μs 1.39ns 5.19ns 0.0129 0 0 920 B
master ExecuteAsync netcoreapp3.1 1.69μs 0.671ns 2.51ns 0.0126 0 0 920 B
master ExecuteAsync net472 1.84μs 0.717ns 2.78ns 0.139 0 0 883 B
#5300 ExecuteAsync net6.0 1.35μs 0.694ns 2.6ns 0.0128 0 0 920 B
#5300 ExecuteAsync netcoreapp3.1 1.69μs 0.561ns 2.1ns 0.0119 0 0 920 B
#5300 ExecuteAsync net472 1.82μs 0.468ns 1.81ns 0.14 0 0 883 B
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 4.22μs 1.85ns 6.92ns 0.0295 0 0 2.15 KB
master SendAsync netcoreapp3.1 5.06μs 9.74ns 37.7ns 0.0351 0 0 2.69 KB
master SendAsync net472 7.72μs 4.7ns 18.2ns 0.535 0 0 3.37 KB
#5300 SendAsync net6.0 4.29μs 1.34ns 5.01ns 0.0302 0 0 2.15 KB
#5300 SendAsync netcoreapp3.1 5.07μs 2.69ns 9.71ns 0.0355 0 0 2.69 KB
#5300 SendAsync net472 7.96μs 12.4ns 46.5ns 0.533 0 0 3.37 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5300

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 203.31 KB 204.53 KB 1.22 KB 0.60%

Fewer allocations :tada: in #5300

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 214.24 KB 202.39 KB -11.85 KB -5.53%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 62.09 KB 57.8 KB -4.29 KB -6.91%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 63.5μs 723ns 7.19μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 52.8μs 258ns 1.03μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 37.5μs 71.1ns 256ns 0 0 0 62.09 KB
master StringConcatAspectBenchmark net6.0 267μs 687ns 3.83μs 0 0 0 214.24 KB
master StringConcatAspectBenchmark netcoreapp3.1 294μs 1.57μs 8.59μs 0 0 0 203.31 KB
master StringConcatAspectBenchmark net472 252μs 3.62μs 34.7μs 0 0 0 221.18 KB
#5300 StringConcatBenchmark net6.0 57.1μs 771ns 7.6μs 0 0 0 43.44 KB
#5300 StringConcatBenchmark netcoreapp3.1 53.2μs 242ns 937ns 0 0 0 42.64 KB
#5300 StringConcatBenchmark net472 37.7μs 123ns 427ns 0 0 0 57.8 KB
#5300 StringConcatAspectBenchmark net6.0 260μs 893ns 3.89μs 0 0 0 202.39 KB
#5300 StringConcatAspectBenchmark netcoreapp3.1 281μs 3.69μs 36.7μs 0 0 0 204.53 KB
#5300 StringConcatAspectBenchmark net472 261μs 5.62μs 55μs 0 0 0 221.18 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.42μs 0.538ns 1.86ns 0.0228 0 0 1.63 KB
master EnrichedLog netcoreapp3.1 2.28μs 0.707ns 2.55ns 0.0218 0 0 1.63 KB
master EnrichedLog net472 2.69μs 0.949ns 3.67ns 0.247 0 0 1.56 KB
#5300 EnrichedLog net6.0 1.49μs 0.658ns 2.55ns 0.0225 0 0 1.63 KB
#5300 EnrichedLog netcoreapp3.1 2.28μs 1.12ns 4.32ns 0.0218 0 0 1.63 KB
#5300 EnrichedLog net472 2.59μs 3.67ns 14.2ns 0.247 0 0 1.56 KB
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 112μs 113ns 439ns 0.0563 0 0 4.22 KB
master EnrichedLog netcoreapp3.1 119μs 135ns 525ns 0 0 0 4.22 KB
master EnrichedLog net472 146μs 114ns 443ns 0.657 0.219 0 4.4 KB
#5300 EnrichedLog net6.0 113μs 103ns 398ns 0.0564 0 0 4.22 KB
#5300 EnrichedLog netcoreapp3.1 120μs 123ns 475ns 0.0602 0 0 4.22 KB
#5300 EnrichedLog net472 149μs 133ns 515ns 0.674 0.225 0 4.4 KB
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.9μs 1.4ns 5.23ns 0.0304 0 0 2.19 KB
master EnrichedLog netcoreapp3.1 4.29μs 1.73ns 6.49ns 0.0278 0 0 2.19 KB
master EnrichedLog net472 4.79μs 1.23ns 4.77ns 0.317 0 0 2.01 KB
#5300 EnrichedLog net6.0 2.98μs 0.98ns 3.67ns 0.0296 0 0 2.19 KB
#5300 EnrichedLog netcoreapp3.1 4.09μs 1.12ns 4.35ns 0.0286 0 0 2.19 KB
#5300 EnrichedLog net472 4.7μs 1.03ns 3.72ns 0.317 0 0 2.01 KB
Benchmarks.Trace.RedisBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #5300

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.RedisBenchmark.SendReceive‑netcoreapp3.1 1.119 1,693.61 1,894.43

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.35μs 1.47ns 5.5ns 0.0163 0 0 1.17 KB
master SendReceive netcoreapp3.1 1.69μs 0.985ns 3.82ns 0.0161 0 0 1.17 KB
master SendReceive net472 2.28μs 0.835ns 3.24ns 0.185 0 0 1.17 KB
#5300 SendReceive net6.0 1.48μs 1.01ns 3.79ns 0.0163 0 0 1.17 KB
#5300 SendReceive netcoreapp3.1 1.89μs 1.6ns 6.21ns 0.0152 0 0 1.17 KB
#5300 SendReceive net472 2.4μs 1.72ns 6.19ns 0.185 0 0 1.17 KB
Benchmarks.Trace.SerilogBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #5300

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net6.0 1.126 3,089.32 2,743.44

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 3.04μs 17.6ns 138ns 0.021 0 0 1.54 KB
master EnrichedLog netcoreapp3.1 3.86μs 2.43ns 9.4ns 0.0216 0 0 1.58 KB
master EnrichedLog net472 4.27μs 2.18ns 8.43ns 0.312 0 0 1.97 KB
#5300 EnrichedLog net6.0 2.74μs 1.67ns 6.45ns 0.021 0 0 1.54 KB
#5300 EnrichedLog netcoreapp3.1 3.95μs 2.22ns 8.61ns 0.0217 0 0 1.58 KB
#5300 EnrichedLog net472 4.3μs 1.31ns 4.54ns 0.313 0 0 1.97 KB
Benchmarks.Trace.SpanBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #5300

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 1.166 463.31 540.44

Faster :tada: in #5300

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.122 721.43 643.03

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 463ns 0.162ns 0.605ns 0.00772 0 0 544 B
master StartFinishSpan netcoreapp3.1 721ns 0.327ns 1.22ns 0.00719 0 0 544 B
master StartFinishSpan net472 720ns 0.274ns 1.06ns 0.0865 0 0 546 B
master StartFinishScope net6.0 629ns 0.824ns 3.19ns 0.00917 0 0 664 B
master StartFinishScope netcoreapp3.1 868ns 0.298ns 1.11ns 0.00889 0 0 664 B
master StartFinishScope net472 927ns 0.253ns 0.98ns 0.0992 0 0 626 B
#5300 StartFinishSpan net6.0 541ns 0.838ns 3.25ns 0.00764 0 0 544 B
#5300 StartFinishSpan netcoreapp3.1 643ns 0.62ns 2.32ns 0.00745 0 0 544 B
#5300 StartFinishSpan net472 705ns 0.922ns 3.57ns 0.0866 0 0 546 B
#5300 StartFinishScope net6.0 612ns 0.775ns 3ns 0.00934 0 0 664 B
#5300 StartFinishScope netcoreapp3.1 837ns 0.764ns 2.96ns 0.00893 0 0 664 B
#5300 StartFinishScope net472 986ns 1.12ns 4.33ns 0.0992 0 0 626 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 651ns 0.539ns 2.09ns 0.00914 0 0 664 B
master RunOnMethodBegin netcoreapp3.1 946ns 1.51ns 5.66ns 0.00881 0 0 664 B
master RunOnMethodBegin net472 1.1μs 0.429ns 1.6ns 0.0994 0 0 626 B
#5300 RunOnMethodBegin net6.0 631ns 0.414ns 1.6ns 0.00938 0 0 664 B
#5300 RunOnMethodBegin netcoreapp3.1 1E+03ns 0.686ns 2.66ns 0.00864 0 0 664 B
#5300 RunOnMethodBegin net472 1.07μs 1.61ns 6.24ns 0.0993 0 0 626 B

andrewlock avatar Mar 13 '24 10:03 andrewlock

Benchmarks Report for tracer :snail:

Benchmarks for #5300 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.143
  • 3 benchmarks are slower, with geometric mean 1.139
  • 2 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.ActivityBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 8.78μs 50.2ns 362ns 0.0221 0.00884 0 7.48 KB
master StartStopWithChild netcoreapp3.1 10.7μs 60.9ns 444ns 0.036 0.0154 0.00514 7.59 KB
master StartStopWithChild net472 17.4μs 31ns 120ns 1.31 0.326 0.0944 7.95 KB
#5300 StartStopWithChild net6.0 8.91μs 44.8ns 205ns 0.0268 0.0134 0 7.5 KB
#5300 StartStopWithChild netcoreapp3.1 10.9μs 59ns 359ns 0.0266 0.0107 0 7.59 KB
#5300 StartStopWithChild net472 17.1μs 49.9ns 193ns 1.34 0.351 0.12 7.95 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 447μs 130ns 469ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 609μs 288ns 1.12μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 803μs 512ns 1.98μs 0.403 0 0 3.3 KB
#5300 WriteAndFlushEnrichedTraces net6.0 444μs 92.7ns 334ns 0 0 0 2.7 KB
#5300 WriteAndFlushEnrichedTraces netcoreapp3.1 606μs 267ns 997ns 0 0 0 2.7 KB
#5300 WriteAndFlushEnrichedTraces net472 796μs 295ns 1.14μs 0.398 0 0 3.3 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 40.7μs 12.8ns 49.5ns 0.0206 0 0 2.36 KB
master AllCycleSimpleBody netcoreapp3.1 43.8μs 29.7ns 107ns 0.0219 0 0 2.34 KB
master AllCycleSimpleBody net472 46.5μs 19.6ns 75.8ns 0.373 0 0 2.41 KB
master AllCycleMoreComplexBody net6.0 217μs 125ns 468ns 0.108 0 0 9.84 KB
master AllCycleMoreComplexBody netcoreapp3.1 229μs 119ns 412ns 0.114 0 0 9.73 KB
master AllCycleMoreComplexBody net472 240μs 86.1ns 334ns 1.55 0 0 9.91 KB
master ObjectExtractorSimpleBody net6.0 145ns 0.0831ns 0.311ns 0.00394 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 221ns 0.21ns 0.785ns 0.0037 0 0 272 B
master ObjectExtractorSimpleBody net472 173ns 0.137ns 0.532ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 2.97μs 1.32ns 4.94ns 0.0537 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.16μs 3.14ns 12.2ns 0.0497 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.87μs 2.78ns 10.8ns 0.603 0.00578 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 32.2μs 12.5ns 46.6ns 0.388 0 0 27.94 KB
master EncodeArgs netcoreapp3.1 47.1μs 35.5ns 133ns 0.375 0 0 27.94 KB
master EncodeArgs net472 60μs 40.3ns 156ns 4.43 0.0602 0 28.03 KB
master EncodeLegacyArgs net6.0 97.8μs 116ns 401ns 0.425 0 0 30.34 KB
master EncodeLegacyArgs netcoreapp3.1 127μs 439ns 1.58μs 0.306 0 0 30.34 KB
master EncodeLegacyArgs net472 179μs 100ns 387ns 4.82 0.357 0 30.44 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 192μs 406ns 1.57μs 0.095 0 0 6.51 KB
master RunWafRealisticBenchmark netcoreapp3.1 204μs 313ns 1.21μs 0 0 0 6.49 KB
master RunWafRealisticBenchmark net472 224μs 150ns 582ns 1 0 0 6.59 KB
master RunWafRealisticBenchmarkWithAttack net6.0 127μs 67.1ns 251ns 0 0 0 4.15 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 136μs 226ns 874ns 0 0 0 4.14 KB
master RunWafRealisticBenchmarkWithAttack net472 148μs 48.2ns 187ns 0.666 0 0 4.19 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5300

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑netcoreapp3.1 20.46 KB 20.85 KB 384 B 1.88%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 168μs 111ns 431ns 0.168 0 0 18.3 KB
master SendRequest netcoreapp3.1 193μs 297ns 1.15μs 0.193 0 0 20.46 KB
master SendRequest net472 0.00116ns 0.000408ns 0.00158ns 0 0 0 0 b
#5300 SendRequest net6.0 178μs 217ns 839ns 0.179 0 0 18.35 KB
#5300 SendRequest netcoreapp3.1 201μs 332ns 1.29μs 0.202 0 0 20.85 KB
#5300 SendRequest net472 0.000983ns 0.000171ns 0.000618ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5300

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 41.36 KB 41.65 KB 289 B 0.70%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 549μs 783ns 3.03μs 0.571 0 0 41.36 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 665μs 1.24μs 4.62μs 0.331 0 0 41.7 KB
master WriteAndFlushEnrichedTraces net472 835μs 2.56μs 9.9μs 8.33 2.5 0.417 53.25 KB
#5300 WriteAndFlushEnrichedTraces net6.0 549μs 269ns 933ns 0.546 0 0 41.65 KB
#5300 WriteAndFlushEnrichedTraces netcoreapp3.1 645μs 1.1μs 4.25μs 0.314 0 0 41.85 KB
#5300 WriteAndFlushEnrichedTraces net472 829μs 2.99μs 11.6μs 8.22 2.47 0.411 53.23 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.18μs 0.701ns 2.71ns 0.0107 0 0 776 B
master ExecuteNonQuery netcoreapp3.1 1.57μs 0.796ns 3.08ns 0.0102 0 0 776 B
master ExecuteNonQuery net472 1.72μs 1.35ns 4.67ns 0.117 0 0 738 B
#5300 ExecuteNonQuery net6.0 1.14μs 0.921ns 3.57ns 0.0109 0 0 776 B
#5300 ExecuteNonQuery netcoreapp3.1 1.54μs 0.801ns 3ns 0.0101 0 0 776 B
#5300 ExecuteNonQuery net472 1.87μs 0.826ns 3.09ns 0.117 0 0 738 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.29μs 0.966ns 3.74ns 0.0141 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.61μs 1.21ns 4.68ns 0.013 0 0 1 KB
master CallElasticsearch net472 2.43μs 1.2ns 4.47ns 0.16 0 0 1.01 KB
master CallElasticsearchAsync net6.0 1.25μs 0.744ns 2.88ns 0.0137 0 0 976 B
master CallElasticsearchAsync netcoreapp3.1 1.67μs 0.8ns 2.99ns 0.014 0 0 1.05 KB
master CallElasticsearchAsync net472 2.69μs 2.08ns 8.04ns 0.169 0 0 1.07 KB
#5300 CallElasticsearch net6.0 1.27μs 1.59ns 5.95ns 0.0142 0 0 1 KB
#5300 CallElasticsearch netcoreapp3.1 1.52μs 1.09ns 4.07ns 0.0136 0 0 1 KB
#5300 CallElasticsearch net472 2.51μs 1.43ns 5.53ns 0.16 0 0 1.01 KB
#5300 CallElasticsearchAsync net6.0 1.37μs 0.957ns 3.71ns 0.0138 0 0 976 B
#5300 CallElasticsearchAsync netcoreapp3.1 1.63μs 0.836ns 3.13ns 0.0139 0 0 1.05 KB
#5300 CallElasticsearchAsync net472 2.56μs 4.43ns 17.1ns 0.169 0 0 1.07 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.42μs 1.39ns 5.19ns 0.0129 0 0 920 B
master ExecuteAsync netcoreapp3.1 1.69μs 0.671ns 2.51ns 0.0126 0 0 920 B
master ExecuteAsync net472 1.84μs 0.717ns 2.78ns 0.139 0 0 883 B
#5300 ExecuteAsync net6.0 1.29μs 1.42ns 5.49ns 0.0125 0 0 920 B
#5300 ExecuteAsync netcoreapp3.1 1.72μs 1.17ns 4.36ns 0.0119 0 0 920 B
#5300 ExecuteAsync net472 1.84μs 0.361ns 1.4ns 0.14 0 0 883 B
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 4.22μs 1.85ns 6.92ns 0.0295 0 0 2.15 KB
master SendAsync netcoreapp3.1 5.06μs 9.74ns 37.7ns 0.0351 0 0 2.69 KB
master SendAsync net472 7.72μs 4.7ns 18.2ns 0.535 0 0 3.37 KB
#5300 SendAsync net6.0 4.31μs 2.6ns 9.74ns 0.03 0 0 2.15 KB
#5300 SendAsync netcoreapp3.1 5.04μs 2.43ns 9.41ns 0.0355 0 0 2.69 KB
#5300 SendAsync net472 7.87μs 1.85ns 7.17ns 0.535 0 0 3.37 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 63.5μs 723ns 7.19μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 52.8μs 258ns 1.03μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 37.5μs 71.1ns 256ns 0 0 0 62.09 KB
master StringConcatAspectBenchmark net6.0 267μs 687ns 3.83μs 0 0 0 214.24 KB
master StringConcatAspectBenchmark netcoreapp3.1 294μs 1.57μs 8.59μs 0 0 0 203.31 KB
master StringConcatAspectBenchmark net472 252μs 3.62μs 34.7μs 0 0 0 221.18 KB
Benchmarks.Trace.ILoggerBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #5300

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net6.0 1.145 1,423.40 1,630.32

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.42μs 0.538ns 1.86ns 0.0228 0 0 1.63 KB
master EnrichedLog netcoreapp3.1 2.28μs 0.707ns 2.55ns 0.0218 0 0 1.63 KB
master EnrichedLog net472 2.69μs 0.949ns 3.67ns 0.247 0 0 1.56 KB
#5300 EnrichedLog net6.0 1.63μs 1.03ns 4ns 0.0229 0 0 1.63 KB
#5300 EnrichedLog netcoreapp3.1 2.26μs 1.17ns 4.52ns 0.0213 0 0 1.63 KB
#5300 EnrichedLog net472 2.66μs 2.1ns 7.87ns 0.247 0 0 1.56 KB
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 112μs 113ns 439ns 0.0563 0 0 4.22 KB
master EnrichedLog netcoreapp3.1 119μs 135ns 525ns 0 0 0 4.22 KB
master EnrichedLog net472 146μs 114ns 443ns 0.657 0.219 0 4.4 KB
#5300 EnrichedLog net6.0 114μs 169ns 655ns 0 0 0 4.22 KB
#5300 EnrichedLog netcoreapp3.1 119μs 97.8ns 339ns 0.0597 0 0 4.22 KB
#5300 EnrichedLog net472 148μs 145ns 563ns 0.668 0.223 0 4.4 KB
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.9μs 1.4ns 5.23ns 0.0304 0 0 2.19 KB
master EnrichedLog netcoreapp3.1 4.29μs 1.73ns 6.49ns 0.0278 0 0 2.19 KB
master EnrichedLog net472 4.79μs 1.23ns 4.77ns 0.317 0 0 2.01 KB
#5300 EnrichedLog net6.0 3.15μs 0.92ns 3.44ns 0.03 0 0 2.19 KB
#5300 EnrichedLog netcoreapp3.1 4.16μs 1.24ns 4.63ns 0.0288 0 0 2.19 KB
#5300 EnrichedLog net472 4.9μs 1.75ns 6.3ns 0.319 0 0 2.01 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.35μs 1.47ns 5.5ns 0.0163 0 0 1.17 KB
master SendReceive netcoreapp3.1 1.69μs 0.985ns 3.82ns 0.0161 0 0 1.17 KB
master SendReceive net472 2.28μs 0.835ns 3.24ns 0.185 0 0 1.17 KB
#5300 SendReceive net6.0 1.45μs 0.732ns 2.74ns 0.0167 0 0 1.17 KB
#5300 SendReceive netcoreapp3.1 1.8μs 1.29ns 4.98ns 0.0161 0 0 1.17 KB
#5300 SendReceive net472 2.27μs 0.677ns 2.62ns 0.186 0 0 1.17 KB
Benchmarks.Trace.SerilogBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #5300

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net6.0 1.158 3,089.32 2,667.04

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 3.04μs 17.6ns 138ns 0.021 0 0 1.54 KB
master EnrichedLog netcoreapp3.1 3.86μs 2.43ns 9.4ns 0.0216 0 0 1.58 KB
master EnrichedLog net472 4.27μs 2.18ns 8.43ns 0.312 0 0 1.97 KB
#5300 EnrichedLog net6.0 2.67μs 0.722ns 2.7ns 0.0214 0 0 1.54 KB
#5300 EnrichedLog netcoreapp3.1 3.83μs 4.01ns 15.5ns 0.021 0 0 1.58 KB
#5300 EnrichedLog net472 4.37μs 2.42ns 9.39ns 0.312 0 0 1.97 KB
Benchmarks.Trace.SpanBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #5300

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 1.119 720.10 806.12

Faster :tada: in #5300

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.129 721.43 639.13

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 463ns 0.162ns 0.605ns 0.00772 0 0 544 B
master StartFinishSpan netcoreapp3.1 721ns 0.327ns 1.22ns 0.00719 0 0 544 B
master StartFinishSpan net472 720ns 0.274ns 1.06ns 0.0865 0 0 546 B
master StartFinishScope net6.0 629ns 0.824ns 3.19ns 0.00917 0 0 664 B
master StartFinishScope netcoreapp3.1 868ns 0.298ns 1.11ns 0.00889 0 0 664 B
master StartFinishScope net472 927ns 0.253ns 0.98ns 0.0992 0 0 626 B
#5300 StartFinishSpan net6.0 503ns 0.116ns 0.419ns 0.00758 0 0 544 B
#5300 StartFinishSpan netcoreapp3.1 639ns 0.429ns 1.66ns 0.00733 0 0 544 B
#5300 StartFinishSpan net472 805ns 1.08ns 4.18ns 0.0866 0 0 546 B
#5300 StartFinishScope net6.0 658ns 0.429ns 1.6ns 0.00922 0 0 664 B
#5300 StartFinishScope netcoreapp3.1 860ns 0.652ns 2.53ns 0.00885 0 0 664 B
#5300 StartFinishScope net472 1.02μs 1.07ns 4.14ns 0.0993 0 0 626 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #5300

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 1.153 651.52 751.41

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 651ns 0.539ns 2.09ns 0.00914 0 0 664 B
master RunOnMethodBegin netcoreapp3.1 946ns 1.51ns 5.66ns 0.00881 0 0 664 B
master RunOnMethodBegin net472 1.1μs 0.429ns 1.6ns 0.0994 0 0 626 B
#5300 RunOnMethodBegin net6.0 752ns 0.764ns 2.96ns 0.00939 0 0 664 B
#5300 RunOnMethodBegin netcoreapp3.1 935ns 0.714ns 2.77ns 0.0091 0 0 664 B
#5300 RunOnMethodBegin net472 1.08μs 0.765ns 2.65ns 0.099 0 0 626 B

andrewlock avatar Mar 13 '24 14:03 andrewlock