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

[Dynamic Instrumentation] DEBUG 3794 Stablize snapshot enumerable serializing

Open dudikeleti opened this issue 7 months ago • 3 comments

Summary of changes

  • Stabilized the serialization of snapshot enumerables in dynamic instrumentation.

Reason for change

  • Ensures consistent and reliable behavior during snapshot serialization in dynamic instrumentation scenarios.

dudikeleti avatar Apr 30 '25 09:04 dudikeleti

Datadog Report

Branch report: dudik/snapshot-serialize-enumerable Commit report: 62e50a9 Test service: dd-trace-dotnet

:x: 9 Failed (0 Known Flaky), 70255 Passed, 363 Skipped, 43m 17.79s Total Time

:x: Failed Tests (9)

This report shows up to 5 failed tests.

  • Limits_LargeCollection - Datadog.Trace.Tests.Debugger.DebuggerSnapshotCreatorTests - Details

    Expand for error
    o token to close. Path ''.
    
  • Limits_LargeCollection - Datadog.Trace.Tests.Debugger.DebuggerSnapshotCreatorTests - Details

    Expand for error
    o token to close. Path ''.
    
  • Limits_LargeCollection - Datadog.Trace.Tests.Debugger.DebuggerSnapshotCreatorTests - Details

    Expand for error
    o token to close. Path ''.
    
  • Limits_LargeCollection - Datadog.Trace.Tests.Debugger.DebuggerSnapshotCreatorTests - Details

    Expand for error
    o token to close. Path ''.
    
  • Limits_LargeCollection - Datadog.Trace.Tests.Debugger.DebuggerSnapshotCreatorTests - Details

    Expand for error
    o token to close. Path ''.
    

Benchmarks Report for tracer :snail:

Benchmarks for #6910 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.118
  • 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.ActivityBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #6910

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.13 KB 6.17 KB 37 B 0.60%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 7.74μs 90.1ns 896ns 0 0 0 5.57 KB
master StartStopWithChild netcoreapp3.1 10.1μs 148ns 1.48μs 0 0 0 5.73 KB
master StartStopWithChild net472 15.3μs 87.8ns 697ns 1.04 0.297 0.0741 6.13 KB
#6910 StartStopWithChild net6.0 8.37μs 152ns 1.52μs 0 0 0 5.6 KB
#6910 StartStopWithChild netcoreapp3.1 10.7μs 150ns 1.5μs 0 0 0 5.74 KB
#6910 StartStopWithChild net472 15.3μs 69.6ns 269ns 1.04 0.296 0.074 6.17 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 513μs 5.69μs 50.6μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 664μs 854ns 3.19μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 841μs 2.7μs 10.1μs 0 0 0 3.31 KB
#6910 WriteAndFlushEnrichedTraces net6.0 511μs 1.17μs 4.21μs 0 0 0 2.7 KB
#6910 WriteAndFlushEnrichedTraces netcoreapp3.1 690μs 2.17μs 8.12μs 0 0 0 2.7 KB
#6910 WriteAndFlushEnrichedTraces net472 856μs 820ns 2.96μs 0 0 0 3.31 KB
Benchmarks.Trace.AspNetCoreBenchmark - 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 SendRequest net6.0 127μs 626ns 2.66μs 0 0 0 14.48 KB
master SendRequest netcoreapp3.1 141μs 821ns 7.15μs 0 0 0 17.28 KB
master SendRequest net472 0.00158ns 0.000518ns 0.00201ns 0 0 0 0 b
#6910 SendRequest net6.0 125μs 714ns 5.39μs 0 0 0 14.48 KB
#6910 SendRequest netcoreapp3.1 148μs 534ns 2.07μs 0 0 0 17.28 KB
#6910 SendRequest net472 0.00394ns 0.00132ns 0.00512ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - 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 653μs 7.16μs 70.9μs 0 0 0 41.81 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 745μs 8.26μs 80.5μs 0 0 0 41.86 KB
master WriteAndFlushEnrichedTraces net472 871μs 4.95μs 46.7μs 7.35 3.68 0 53.37 KB
#6910 WriteAndFlushEnrichedTraces net6.0 588μs 4.7μs 46μs 0 0 0 41.68 KB
#6910 WriteAndFlushEnrichedTraces netcoreapp3.1 703μs 5.61μs 54.7μs 0 0 0 41.74 KB
#6910 WriteAndFlushEnrichedTraces net472 909μs 5.47μs 54.1μs 8.33 0 0 53.39 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.3μs 3.03ns 11.3ns 0.0129 0 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 1.78μs 3.2ns 11.1ns 0.00901 0 0 1.02 KB
master ExecuteNonQuery net472 2.15μs 1.56ns 5.83ns 0.153 0.0109 0 995 B
#6910 ExecuteNonQuery net6.0 1.33μs 6.27ns 23.5ns 0.0132 0 0 1.03 KB
#6910 ExecuteNonQuery netcoreapp3.1 1.8μs 3.99ns 14.4ns 0.00877 0 0 1.02 KB
#6910 ExecuteNonQuery net472 2.14μs 1.88ns 7.04ns 0.149 0.0106 0 995 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.32μs 1.17ns 4.53ns 0.0133 0 0 984 B
master CallElasticsearch netcoreapp3.1 1.6μs 1.34ns 4.83ns 0.00809 0 0 984 B
master CallElasticsearch net472 2.58μs 1.38ns 4.98ns 0.154 0 0 1 KB
master CallElasticsearchAsync net6.0 1.28μs 1.58ns 6.13ns 0.0126 0 0 960 B
master CallElasticsearchAsync netcoreapp3.1 1.73μs 1.34ns 5.17ns 0.00864 0 0 1.03 KB
master CallElasticsearchAsync net472 2.6μs 1.17ns 4.53ns 0.156 0 0 1.06 KB
#6910 CallElasticsearch net6.0 1.2μs 0.948ns 3.55ns 0.0121 0 0 984 B
#6910 CallElasticsearch netcoreapp3.1 1.57μs 0.941ns 3.52ns 0.00785 0 0 984 B
#6910 CallElasticsearch net472 2.59μs 1.14ns 4.42ns 0.156 0 0 1 KB
#6910 CallElasticsearchAsync net6.0 1.28μs 0.678ns 2.54ns 0.0128 0 0 960 B
#6910 CallElasticsearchAsync netcoreapp3.1 1.68μs 1.07ns 4.14ns 0.00842 0 0 1.03 KB
#6910 CallElasticsearchAsync net472 2.68μs 2.2ns 8.53ns 0.159 0 0 1.06 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.35μs 0.862ns 3.23ns 0.0135 0 0 960 B
master ExecuteAsync netcoreapp3.1 1.62μs 1.7ns 6.12ns 0.00819 0 0 960 B
master ExecuteAsync net472 1.81μs 0.999ns 3.74ns 0.145 0 0 923 B
#6910 ExecuteAsync net6.0 1.27μs 0.845ns 3.27ns 0.0127 0 0 960 B
#6910 ExecuteAsync netcoreapp3.1 1.67μs 1.26ns 4.53ns 0.00833 0 0 960 B
#6910 ExecuteAsync net472 1.8μs 0.851ns 3.3ns 0.144 0 0 923 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.4μs 1.76ns 6.09ns 0.0221 0 0 2.32 KB
master SendAsync netcoreapp3.1 5.29μs 9.69ns 37.5ns 0.0263 0 0 2.86 KB
master SendAsync net472 7.45μs 5.2ns 19.5ns 0.49 0 0 3.13 KB
#6910 SendAsync net6.0 4.25μs 1.48ns 5.54ns 0.0214 0 0 2.32 KB
#6910 SendAsync netcoreapp3.1 5.26μs 3.38ns 12.6ns 0.0263 0 0 2.86 KB
#6910 SendAsync net472 7.62μs 3.73ns 14.5ns 0.494 0 0 3.13 KB
Benchmarks.Trace.ILoggerBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #6910

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net6.0 1.117 1,679.31 1,504.07

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.68μs 1.82ns 7.07ns 0.0168 0 0 1.71 KB
master EnrichedLog netcoreapp3.1 2.34μs 1.83ns 7.09ns 0.0118 0 0 1.71 KB
master EnrichedLog net472 2.65μs 1.81ns 7.02ns 0.25 0 0 1.64 KB
#6910 EnrichedLog net6.0 1.5μs 0.775ns 3ns 0.0226 0 0 1.71 KB
#6910 EnrichedLog netcoreapp3.1 2.19μs 1.84ns 7.14ns 0.022 0 0 1.71 KB
#6910 EnrichedLog net472 2.51μs 1.28ns 4.79ns 0.25 0 0 1.64 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 295ns 1.14μs 0 0 0 4.32 KB
master EnrichedLog netcoreapp3.1 115μs 424ns 1.64μs 0 0 0 4.32 KB
master EnrichedLog net472 149μs 226ns 876ns 0 0 0 4.51 KB
#6910 EnrichedLog net6.0 111μs 232ns 898ns 0 0 0 4.32 KB
#6910 EnrichedLog netcoreapp3.1 116μs 159ns 550ns 0 0 0 4.32 KB
#6910 EnrichedLog net472 149μs 236ns 817ns 0 0 0 4.51 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 3.26μs 2.4ns 9.29ns 0.0331 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 4.27μs 5.13ns 19.9ns 0.0214 0 0 2.26 KB
master EnrichedLog net472 4.89μs 3.09ns 12ns 0.318 0 0 2.09 KB
#6910 EnrichedLog net6.0 3.17μs 2.31ns 8.94ns 0.0316 0 0 2.26 KB
#6910 EnrichedLog netcoreapp3.1 4.09μs 3.17ns 11.8ns 0.0204 0 0 2.26 KB
#6910 EnrichedLog net472 5.16μs 3.2ns 12ns 0.308 0 0 2.09 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.37μs 1.14ns 4.41ns 0.0138 0 0 1.15 KB
master SendReceive netcoreapp3.1 1.8μs 1.13ns 4.22ns 0.00907 0 0 1.15 KB
master SendReceive net472 2.16μs 1.57ns 6.06ns 0.179 0 0 1.16 KB
#6910 SendReceive net6.0 1.36μs 0.952ns 3.3ns 0.0137 0 0 1.15 KB
#6910 SendReceive netcoreapp3.1 1.74μs 3.94ns 14.2ns 0.00863 0 0 1.15 KB
#6910 SendReceive net472 2.11μs 2.39ns 8.62ns 0.179 0 0 1.16 KB
Benchmarks.Trace.SerilogBenchmark - 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.83μs 1.73ns 6.69ns 0.0142 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 3.9μs 2.18ns 7.85ns 0.0194 0 0 1.69 KB
master EnrichedLog net472 4.46μs 2.75ns 10.6ns 0.313 0 0 2.08 KB
#6910 EnrichedLog net6.0 2.92μs 2.37ns 9.17ns 0.0145 0 0 1.64 KB
#6910 EnrichedLog netcoreapp3.1 3.92μs 5.13ns 19.9ns 0.0197 0 0 1.69 KB
#6910 EnrichedLog net472 4.59μs 6.43ns 24.9ns 0.32 0 0 2.08 KB
Benchmarks.Trace.SpanBenchmark - 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 StartFinishSpan net6.0 412ns 0.354ns 1.32ns 0.00815 0 0 584 B
master StartFinishSpan netcoreapp3.1 582ns 0.765ns 2.96ns 0.00573 0 0 584 B
master StartFinishSpan net472 658ns 0.658ns 2.37ns 0.0922 0 0 586 B
master StartFinishScope net6.0 492ns 0.316ns 1.18ns 0.00975 0 0 704 B
master StartFinishScope netcoreapp3.1 752ns 0.69ns 2.58ns 0.00755 0 0 704 B
master StartFinishScope net472 838ns 0.778ns 3.01ns 0.105 0 0 666 B
#6910 StartFinishSpan net6.0 408ns 0.242ns 0.873ns 0.00807 0 0 584 B
#6910 StartFinishSpan netcoreapp3.1 647ns 0.441ns 1.71ns 0.00639 0 0 584 B
#6910 StartFinishSpan net472 601ns 0.459ns 1.78ns 0.0904 0 0 586 B
#6910 StartFinishScope net6.0 505ns 0.279ns 1.08ns 0.00996 0 0 704 B
#6910 StartFinishScope netcoreapp3.1 759ns 0.362ns 1.35ns 0.00764 0 0 704 B
#6910 StartFinishScope net472 889ns 0.295ns 1.14ns 0.102 0 0 666 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #6910

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 1.119 1,002.87 896.47

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 597ns 0.475ns 1.84ns 0.00901 0 0 704 B
master RunOnMethodBegin netcoreapp3.1 1μs 1.28ns 4.78ns 0.00501 0 0 704 B
master RunOnMethodBegin net472 1.14μs 1.45ns 5.62ns 0.102 0 0 666 B
#6910 RunOnMethodBegin net6.0 576ns 0.593ns 2.3ns 0.0087 0 0 704 B
#6910 RunOnMethodBegin netcoreapp3.1 899ns 1.07ns 4.13ns 0.00902 0 0 704 B
#6910 RunOnMethodBegin net472 1.12μs 0.503ns 1.81ns 0.101 0 0 666 B

andrewlock avatar Apr 30 '25 11:04 andrewlock

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.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (72ms)  : 71, 73
     .   : milestone, 72,
    master - mean (72ms)  : 71, 73
     .   : milestone, 72,

    section Baseline
    This PR (6910) - mean (68ms)  : 64, 73
     .   : milestone, 68,
    master - mean (68ms)  : 66, 70
     .   : milestone, 68,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (1,045ms)  : 1007, 1083
     .   : milestone, 1045,
    master - mean (1,056ms)  : 985, 1127
     .   : milestone, 1056,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (106ms)  : 105, 108
     .   : milestone, 106,
    master - mean (106ms)  : 105, 108
     .   : milestone, 106,

    section Baseline
    This PR (6910) - mean (106ms)  : 104, 109
     .   : milestone, 106,
    master - mean (106ms)  : 103, 108
     .   : milestone, 106,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (739ms)  : 714, 763
     .   : milestone, 739,
    master - mean (750ms)  : 700, 799
     .   : milestone, 750,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (101ms)  : 100, 102
     .   : milestone, 101,
    master - mean (100ms)  : 99, 101
     .   : milestone, 100,

    section Baseline
    This PR (6910) - mean (100ms)  : 98, 102
     .   : milestone, 100,
    master - mean (100ms)  : 98, 102
     .   : milestone, 100,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (778ms)  : 740, 816
     .   : milestone, 778,
    master - mean (779ms)  : 738, 820
     .   : milestone, 779,

gantt
    title Execution time (ms) FakeDbCommand (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (93ms)  : 92, 94
     .   : milestone, 93,
    master - mean (93ms)  : 92, 94
     .   : milestone, 93,

    section Baseline
    This PR (6910) - mean (92ms)  : 90, 95
     .   : milestone, 92,
    master - mean (92ms)  : 90, 95
     .   : milestone, 92,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (660ms)  : 649, 670
     .   : milestone, 660,
    master - mean (663ms)  : 648, 679
     .   : milestone, 663,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (198ms)  : 195, 201
     .   : milestone, 198,
    master - mean (197ms)  : 194, 201
     .   : milestone, 197,

    section Baseline
    This PR (6910) - mean (194ms)  : 190, 199
     .   : milestone, 194,
    master - mean (194ms)  : 189, 199
     .   : milestone, 194,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (1,183ms)  : 1099, 1267
     .   : milestone, 1183,
    master - mean (1,168ms)  : 1113, 1223
     .   : milestone, 1168,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (280ms)  : 276, 283
     .   : milestone, 280,
    master - mean (278ms)  : 275, 282
     .   : milestone, 278,

    section Baseline
    This PR (6910) - mean (280ms)  : 274, 285
     .   : milestone, 280,
    master - mean (278ms)  : 273, 283
     .   : milestone, 278,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (949ms)  : 910, 988
     .   : milestone, 949,
    master - mean (944ms)  : 882, 1007
     .   : milestone, 944,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (284ms)  : 280, 288
     .   : milestone, 284,
    master - mean (282ms)  : 277, 287
     .   : milestone, 282,

    section Baseline
    This PR (6910) - mean (285ms)  : 279, 291
     .   : milestone, 285,
    master - mean (283ms)  : 276, 290
     .   : milestone, 283,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (1,002ms)  : 962, 1042
     .   : milestone, 1002,
    master - mean (996ms)  : 957, 1035
     .   : milestone, 996,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Bailout
    This PR (6910) - mean (271ms)  : 267, 276
     .   : milestone, 271,
    master - mean (271ms)  : 265, 276
     .   : milestone, 271,

    section Baseline
    This PR (6910) - mean (272ms)  : 267, 277
     .   : milestone, 272,
    master - mean (270ms)  : 266, 274
     .   : milestone, 270,

    section CallTarget+Inlining+NGEN
    This PR (6910) - mean (855ms)  : 829, 881
     .   : milestone, 855,
    master - mean (857ms)  : 837, 877
     .   : milestone, 857,

andrewlock avatar Apr 30 '25 11:04 andrewlock

Benchmarks

Benchmarks Report for benchmark platform :snail:

Benchmarks for #6910 compared to master:

  • 1 benchmarks are faster, with geometric mean 2.415
  • 2 benchmarks are slower, with geometric mean 1.208
  • 4 benchmarks have fewer 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 10.4μs 56.1ns 337ns 0 0 0 5.51 KB
master StartStopWithChild netcoreapp3.1 13.7μs 69.1ns 316ns 0 0 0 5.7 KB
master StartStopWithChild net472 21.9μs 123ns 799ns 0.901 0.225 0 6.08 KB
#6910 StartStopWithChild net6.0 10.4μs 57.6ns 331ns 0 0 0 5.51 KB
#6910 StartStopWithChild netcoreapp3.1 13.7μs 61.5ns 238ns 0 0 0 5.71 KB
#6910 StartStopWithChild net472 22.2μs 121ns 662ns 0.893 0.223 0 6.09 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 929μs 126ns 455ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.04ms 271ns 1.05μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.18ms 271ns 1.05μs 0 0 0 3.31 KB
#6910 WriteAndFlushEnrichedTraces net6.0 934μs 458ns 1.77μs 0 0 0 2.71 KB
#6910 WriteAndFlushEnrichedTraces netcoreapp3.1 1.02ms 139ns 518ns 0 0 0 2.7 KB
#6910 WriteAndFlushEnrichedTraces net472 1.18ms 153ns 574ns 0 0 0 3.31 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #6910

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 213.66 KB 207.5 KB -6.16 KB -2.88%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 210.13 KB 203.96 KB -6.17 KB -2.93%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 344μs 117ns 453ns 0 0 0 178.25 KB
master AllCycleSimpleBody netcoreapp3.1 521μs 1.7μs 6.58μs 0 0 0 184.01 KB
master AllCycleSimpleBody net472 459μs 84.4ns 316ns 31.2 0 0 210.13 KB
master AllCycleMoreComplexBody net6.0 354μs 1.71μs 7.04μs 0 0 0 181.77 KB
master AllCycleMoreComplexBody netcoreapp3.1 504μs 660ns 2.64μs 0 0 0 187.44 KB
master AllCycleMoreComplexBody net472 470μs 125ns 466ns 32.4 0 0 213.66 KB
master ObjectExtractorSimpleBody net6.0 321ns 1.6ns 5.78ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 409ns 0.145ns 0.562ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 302ns 0.0273ns 0.0985ns 0.0434 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.22μs 31ns 138ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.86μs 8.24ns 31.9ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.69μs 5.7ns 22.1ns 0.6 0 0 3.8 KB
#6910 AllCycleSimpleBody net6.0 344μs 1.69μs 6.76μs 0 0 0 178.25 KB
#6910 AllCycleSimpleBody netcoreapp3.1 504μs 1.04μs 4.04μs 0 0 0 184.01 KB
#6910 AllCycleSimpleBody net472 462μs 109ns 409ns 31.2 0 0 203.96 KB
#6910 AllCycleMoreComplexBody net6.0 356μs 1.08μs 4.19μs 0 0 0 181.77 KB
#6910 AllCycleMoreComplexBody netcoreapp3.1 512μs 2.41μs 9.62μs 0 0 0 187.44 KB
#6910 AllCycleMoreComplexBody net472 471μs 115ns 445ns 32.4 0 0 207.5 KB
#6910 ObjectExtractorSimpleBody net6.0 329ns 1.63ns 7.29ns 0 0 0 280 B
#6910 ObjectExtractorSimpleBody netcoreapp3.1 394ns 2.19ns 12.6ns 0 0 0 272 B
#6910 ObjectExtractorSimpleBody net472 298ns 0.0163ns 0.0563ns 0.0434 0 0 281 B
#6910 ObjectExtractorMoreComplexBody net6.0 6.33μs 33.1ns 169ns 0 0 0 3.78 KB
#6910 ObjectExtractorMoreComplexBody netcoreapp3.1 7.83μs 22.6ns 87.5ns 0 0 0 3.69 KB
#6910 ObjectExtractorMoreComplexBody net472 6.65μs 1.61ns 6.04ns 0.6 0 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 76.7μs 180ns 695ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 96.1μs 189ns 733ns 0 0 0 32.4 KB
master EncodeArgs net472 111μs 18ns 69.8ns 4.98 0 0 32.51 KB
master EncodeLegacyArgs net6.0 143μs 16.2ns 56.1ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 200μs 219ns 849ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 270μs 79.8ns 309ns 0 0 0 2.16 KB
#6910 EncodeArgs net6.0 78.7μs 144ns 558ns 0 0 0 32.4 KB
#6910 EncodeArgs netcoreapp3.1 97.3μs 197ns 761ns 0 0 0 32.4 KB
#6910 EncodeArgs net472 111μs 45.8ns 177ns 5.03 0 0 32.51 KB
#6910 EncodeLegacyArgs net6.0 144μs 15.4ns 53.3ns 0 0 0 2.14 KB
#6910 EncodeLegacyArgs netcoreapp3.1 199μs 117ns 439ns 0 0 0 2.14 KB
#6910 EncodeLegacyArgs net472 263μs 381ns 1.48μs 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #6910

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 2.415 719,129.46 297,791.35

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 390μs 34ns 132ns 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 411μs 632ns 2.45μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 428μs 76.6ns 287ns 0 0 0 4.66 KB
master RunWafRealisticBenchmarkWithAttack net6.0 285μs 48.7ns 189ns 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 671μs 14μs 132μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 313μs 33.2ns 124ns 0 0 0 2.29 KB
#6910 RunWafRealisticBenchmark net6.0 393μs 63.8ns 230ns 0 0 0 4.56 KB
#6910 RunWafRealisticBenchmark netcoreapp3.1 413μs 73.8ns 276ns 0 0 0 4.48 KB
#6910 RunWafRealisticBenchmark net472 427μs 81.1ns 314ns 0 0 0 4.66 KB
#6910 RunWafRealisticBenchmarkWithAttack net6.0 285μs 43.3ns 162ns 0 0 0 2.24 KB
#6910 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 297μs 256ns 991ns 0 0 0 2.22 KB
#6910 RunWafRealisticBenchmarkWithAttack net472 310μs 33.8ns 131ns 0 0 0 2.29 KB
Benchmarks.Trace.AspNetCoreBenchmark - 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 SendRequest net6.0 61μs 95.8ns 358ns 0 0 0 14.52 KB
master SendRequest netcoreapp3.1 71.6μs 148ns 535ns 0 0 0 17.42 KB
master SendRequest net472 0.00433ns 0.00207ns 0.00803ns 0 0 0 0 b
#6910 SendRequest net6.0 61μs 99.3ns 344ns 0 0 0 14.52 KB
#6910 SendRequest netcoreapp3.1 70.8μs 160ns 576ns 0 0 0 17.42 KB
#6910 SendRequest net472 0.00107ns 0.00107ns 0.00413ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #6910

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CharSliceBenchmark.OptimizedCharSliceWithPool‑net472 51 B 47 B -4 B -7.84%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.92ms 4.5μs 16.8μs 0 0 0 640.01 KB
master OriginalCharSlice netcoreapp3.1 2.21ms 11μs 46.8μs 0 0 0 640 KB
master OriginalCharSlice net472 2.66ms 444ns 1.66μs 100 0 0 641.95 KB
master OptimizedCharSlice net6.0 1.38ms 158ns 590ns 0 0 0 2 B
master OptimizedCharSlice netcoreapp3.1 1.71ms 376ns 1.46μs 0 0 0 1 B
master OptimizedCharSlice net472 1.91ms 194ns 753ns 0 0 0 73 B
master OptimizedCharSliceWithPool net6.0 861μs 31.8ns 119ns 0 0 0 5 B
master OptimizedCharSliceWithPool netcoreapp3.1 844μs 42.7ns 165ns 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.14ms 228ns 885ns 0 0 0 51 B
#6910 OriginalCharSlice net6.0 1.9ms 602ns 2.17μs 0 0 0 640.01 KB
#6910 OriginalCharSlice netcoreapp3.1 2.14ms 4.98μs 19.3μs 0 0 0 640 KB
#6910 OriginalCharSlice net472 2.64ms 599ns 2.32μs 100 0 0 641.95 KB
#6910 OptimizedCharSlice net6.0 1.41ms 58.2ns 225ns 0 0 0 2 B
#6910 OptimizedCharSlice netcoreapp3.1 1.71ms 581ns 2.17μs 0 0 0 1 B
#6910 OptimizedCharSlice net472 1.99ms 417ns 1.61μs 0 0 0 73 B
#6910 OptimizedCharSliceWithPool net6.0 818μs 171ns 661ns 0 0 0 5 B
#6910 OptimizedCharSliceWithPool netcoreapp3.1 801μs 158ns 611ns 0 0 0 0 b
#6910 OptimizedCharSliceWithPool net472 1.15ms 174ns 675ns 0 0 0 47 B
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #6910

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 1.205 685,419.64 825,882.57

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 765μs 4.28μs 26.4μs 0 0 0 41.9 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 686μs 759ns 2.73μs 0 0 0 42.07 KB
master WriteAndFlushEnrichedTraces net472 854μs 1.79μs 6.44μs 8.33 0 0 56.32 KB
#6910 WriteAndFlushEnrichedTraces net6.0 711μs 1.06μs 4.09μs 0 0 0 41.87 KB
#6910 WriteAndFlushEnrichedTraces netcoreapp3.1 820μs 3.45μs 12μs 0 0 0 42.01 KB
#6910 WriteAndFlushEnrichedTraces net472 898μs 1.88μs 7.29μs 8.33 0 0 56.49 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.99μs 2.07ns 8ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.66μs 10.8ns 38.9ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.8μs 7.41ns 28.7ns 0.152 0.0138 0 987 B
#6910 ExecuteNonQuery net6.0 1.91μs 0.913ns 3.54ns 0 0 0 1.02 KB
#6910 ExecuteNonQuery netcoreapp3.1 2.75μs 8.33ns 32.3ns 0 0 0 1.02 KB
#6910 ExecuteNonQuery net472 2.8μs 1.56ns 6.04ns 0.153 0.0139 0 987 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.77μs 7.9ns 30.6ns 0 0 0 1.03 KB
master CallElasticsearch netcoreapp3.1 2.26μs 9.53ns 36.9ns 0 0 0 1.03 KB
master CallElasticsearch net472 3.5μs 1.37ns 5.11ns 0.158 0 0 1.04 KB
master CallElasticsearchAsync net6.0 1.97μs 1.44ns 5.58ns 0 0 0 1.01 KB
master CallElasticsearchAsync netcoreapp3.1 2.47μs 12.3ns 50.7ns 0 0 0 1.08 KB
master CallElasticsearchAsync net472 3.87μs 2.98ns 11.5ns 0.175 0 0 1.1 KB
#6910 CallElasticsearch net6.0 1.77μs 5.8ns 22.5ns 0 0 0 1.03 KB
#6910 CallElasticsearch netcoreapp3.1 2.29μs 11.8ns 52.8ns 0 0 0 1.03 KB
#6910 CallElasticsearch net472 3.4μs 4.7ns 18.2ns 0.153 0 0 1.04 KB
#6910 CallElasticsearchAsync net6.0 1.87μs 1.89ns 7.33ns 0 0 0 1.01 KB
#6910 CallElasticsearchAsync netcoreapp3.1 2.47μs 7.28ns 28.2ns 0 0 0 1.08 KB
#6910 CallElasticsearchAsync net472 3.66μs 2.21ns 8.57ns 0.164 0 0 1.1 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.83μs 3.44ns 13.3ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.36μs 8.13ns 29.3ns 0 0 0 952 B
master ExecuteAsync net472 2.69μs 2.9ns 11.2ns 0.134 0 0 915 B
#6910 ExecuteAsync net6.0 1.78μs 6.83ns 26.5ns 0 0 0 952 B
#6910 ExecuteAsync netcoreapp3.1 2.33μs 7.83ns 30.3ns 0 0 0 952 B
#6910 ExecuteAsync net472 2.55μs 2.01ns 7.77ns 0.139 0 0 915 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 6.81μs 16.8ns 62.8ns 0 0 0 2.36 KB
master SendAsync netcoreapp3.1 8.62μs 21.1ns 81.6ns 0 0 0 2.9 KB
master SendAsync net472 12.4μs 11.4ns 42.6ns 0.497 0 0 3.18 KB
#6910 SendAsync net6.0 7μs 5.8ns 22.5ns 0 0 0 2.36 KB
#6910 SendAsync netcoreapp3.1 8.58μs 21.3ns 82.4ns 0 0 0 2.9 KB
#6910 SendAsync net472 11.9μs 6.89ns 26.7ns 0.479 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Slower :warning: Fewer allocations :tada:

Slower :warning: in #6910

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 1.211 41,500.00 50,250.00

Fewer allocations :tada: in #6910

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 273.71 KB 257.37 KB -16.34 KB -5.97%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 42μs 203ns 1.48μs 0 0 0 43.81 KB
master StringConcatBenchmark netcoreapp3.1 51.3μs 388ns 3.76μs 0 0 0 43.86 KB
master StringConcatBenchmark net472 57.2μs 210ns 812ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 461μs 1.02μs 3.54μs 0 0 0 258.46 KB
master StringConcatAspectBenchmark netcoreapp3.1 498μs 2.3μs 9.21μs 0 0 0 273.71 KB
master StringConcatAspectBenchmark net472 402μs 2.1μs 16.1μs 0 0 0 278.38 KB
#6910 StringConcatBenchmark net6.0 51.8μs 433ns 4.27μs 0 0 0 43.82 KB
#6910 StringConcatBenchmark netcoreapp3.1 46.1μs 220ns 880ns 0 0 0 44.04 KB
#6910 StringConcatBenchmark net472 56.6μs 268ns 1.14μs 0 0 0 57.34 KB
#6910 StringConcatAspectBenchmark net6.0 455μs 1.78μs 6.16μs 0 0 0 257.48 KB
#6910 StringConcatAspectBenchmark netcoreapp3.1 501μs 1.47μs 5.3μs 0 0 0 257.37 KB
#6910 StringConcatAspectBenchmark net472 402μs 2.26μs 14.4μs 0 0 0 278.53 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 2.49μs 12.9ns 58.9ns 0 0 0 1.7 KB
master EnrichedLog netcoreapp3.1 3.51μs 18.4ns 99.1ns 0 0 0 1.7 KB
master EnrichedLog net472 3.71μs 2.12ns 8.22ns 0.242 0 0 1.64 KB
#6910 EnrichedLog net6.0 2.54μs 0.767ns 2.87ns 0 0 0 1.7 KB
#6910 EnrichedLog netcoreapp3.1 3.64μs 14.3ns 55.3ns 0 0 0 1.7 KB
#6910 EnrichedLog net472 3.66μs 6.03ns 23.3ns 0.256 0 0 1.64 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 123μs 118ns 441ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 129μs 455ns 1.76μs 0 0 0 4.31 KB
master EnrichedLog net472 167μs 52.7ns 190ns 0 0 0 4.52 KB
#6910 EnrichedLog net6.0 122μs 47ns 182ns 0 0 0 4.31 KB
#6910 EnrichedLog netcoreapp3.1 127μs 216ns 837ns 0 0 0 4.31 KB
#6910 EnrichedLog net472 166μs 42.4ns 159ns 0 0 0 4.52 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 4.91μs 3.18ns 12.3ns 0 0 0 2.26 KB
master EnrichedLog netcoreapp3.1 6.77μs 18ns 69.8ns 0 0 0 2.26 KB
master EnrichedLog net472 7.7μs 7.44ns 28.8ns 0.306 0 0 2.08 KB
#6910 EnrichedLog net6.0 4.97μs 4.49ns 17.4ns 0 0 0 2.26 KB
#6910 EnrichedLog netcoreapp3.1 6.66μs 19.4ns 72.7ns 0 0 0 2.27 KB
#6910 EnrichedLog net472 7.39μs 5.74ns 22.2ns 0.33 0 0 2.08 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.98μs 10.5ns 54.6ns 0 0 0 1.2 KB
master SendReceive netcoreapp3.1 2.64μs 13.9ns 66.7ns 0 0 0 1.2 KB
master SendReceive net472 3.15μs 1.27ns 4.59ns 0.189 0 0 1.2 KB
#6910 SendReceive net6.0 2.03μs 10.7ns 52.4ns 0 0 0 1.2 KB
#6910 SendReceive netcoreapp3.1 2.66μs 13.8ns 64.8ns 0 0 0 1.2 KB
#6910 SendReceive net472 3.15μs 1.9ns 7.38ns 0.189 0 0 1.2 KB
Benchmarks.Trace.SerilogBenchmark - 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 4.33μs 2.02ns 7.29ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.44μs 14.8ns 57.2ns 0 0 0 1.63 KB
master EnrichedLog net472 6.54μs 6.89ns 26.7ns 0.293 0 0 2.03 KB
#6910 EnrichedLog net6.0 4.01μs 2.87ns 10.7ns 0 0 0 1.58 KB
#6910 EnrichedLog netcoreapp3.1 5.56μs 15.6ns 60.6ns 0 0 0 1.63 KB
#6910 EnrichedLog net472 6.38μs 4.82ns 18.7ns 0.318 0 0 2.03 KB
Benchmarks.Trace.SpanBenchmark - 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 StartFinishSpan net6.0 725ns 3.96ns 23.1ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 910ns 4.45ns 18.9ns 0 0 0 576 B
master StartFinishSpan net472 868ns 0.167ns 0.645ns 0.0914 0 0 578 B
master StartFinishScope net6.0 898ns 0.223ns 0.864ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.15μs 6.19ns 32.2ns 0 0 0 696 B
master StartFinishScope net472 1.06μs 0.37ns 1.39ns 0.101 0 0 658 B
#6910 StartFinishSpan net6.0 729ns 3.4ns 14ns 0 0 0 576 B
#6910 StartFinishSpan netcoreapp3.1 945ns 1.26ns 4.89ns 0 0 0 576 B
#6910 StartFinishSpan net472 892ns 0.243ns 0.911ns 0.0895 0 0 578 B
#6910 StartFinishScope net6.0 896ns 4.12ns 16.5ns 0 0 0 696 B
#6910 StartFinishScope netcoreapp3.1 1.15μs 5.4ns 21.6ns 0 0 0 696 B
#6910 StartFinishScope net472 1.08μs 0.954ns 3.69ns 0.103 0 0 658 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 1.03μs 1.06ns 3.97ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.35μs 5.83ns 22.6ns 0 0 0 696 B
master RunOnMethodBegin net472 1.41μs 1.43ns 5.36ns 0.0986 0 0 658 B
#6910 RunOnMethodBegin net6.0 1.04μs 5.44ns 28.3ns 0 0 0 696 B
#6910 RunOnMethodBegin netcoreapp3.1 1.36μs 6.75ns 30.2ns 0 0 0 696 B
#6910 RunOnMethodBegin net472 1.41μs 1.07ns 4.15ns 0.0983 0 0 658 B

pr-commenter[bot] avatar Oct 10 '25 13:10 pr-commenter[bot]