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

[Tracer] Add sampling tags during serialization

Open lucaspimentel opened this issue 1 year ago • 5 comments

Summary of changes

Instead of adding sampling rates tag to in-memory Span objects, turn them into properties on TraceContext and add them into the MessagePack payload during serialization (for endpoint v0.4).

Reason for change

This is part of a larger step-by-step refactoring of "trace-level" attributes to reduce heap allocations, move more work into the serialization threads, and be better prepared for newer agent endpoint that support trace-level data.

Implementation details

Affected tags:

  • _dd.agent_psr (agent "priority" sampling rate)
  • _dd.rule_psr (rule "priority" sampling rate)
  • _dd.limit_psr (limiter rate, not a "sampling rate" despite the psr)
  • _dd.tracer_kr (trace chunk keep rate)

Changes:

  • remove tag properties from CommonTags and auto-generated code
  • add properties to TraceContext/TraceChunkModel:
    • SamplingMechanism
    • AppliedSamplingRate
    • RateLimiterRate
    • TracesKeepRate
  • inject the relevant tags into spans during serialization

Bonus change:

  • change SamplingMechanism constants from int to string to avoid conversions

Test coverage

Covered by snapshots?

Other details

lucaspimentel avatar Mar 27 '24 14:03 lucaspimentel

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 Baseline
    This PR (5360) - mean (75ms)  : 67, 83
     .   : milestone, 75,
    master - mean (93ms)  : 86, 100
     .   : milestone, 93,

    section CallTarget+Inlining+NGEN
    This PR (5360) - mean (1,049ms)  : 1010, 1089
     .   : milestone, 1049,
    master - mean (1,234ms)  : 1184, 1284
     .   : milestone, 1234,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5360) - mean (111ms)  : 102, 121
     .   : milestone, 111,
    master - mean (137ms)  : 127, 148
     .   : milestone, 137,

    section CallTarget+Inlining+NGEN
    This PR (5360) - mean (731ms)  : 704, 757
     .   : milestone, 731,
    master - mean (858ms)  : 808, 908
     .   : milestone, 858,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5360) - mean (96ms)  : 87, 104
     .   : milestone, 96,
    master - mean (117ms)  : 111, 124
     .   : milestone, 117,

    section CallTarget+Inlining+NGEN
    This PR (5360) - mean (683ms)  : 656, 709
     .   : milestone, 683,
    master - mean (806ms)  : 752, 860
     .   : milestone, 806,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5360) - mean (190ms)  : 186, 193
     .   : milestone, 190,
    master - mean (190ms)  : 187, 194
     .   : milestone, 190,

    section CallTarget+Inlining+NGEN
    This PR (5360) - mean (1,100ms)  : 1071, 1128
     .   : milestone, 1100,
    master - mean (1,113ms)  : 1088, 1137
     .   : milestone, 1113,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (5360) - mean (269ms)  : 265, 273
     .   : milestone, 269,
    master - mean (269ms)  : 265, 272
     .   : milestone, 269,

    section CallTarget+Inlining+NGEN
    This PR (5360) - mean (872ms)  : 840, 903
     .   : milestone, 872,
    master - mean (880ms)  : 849, 910
     .   : milestone, 880,

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

    section CallTarget+Inlining+NGEN
    This PR (5360) - mean (861ms)  : 834, 888
     .   : milestone, 861,
    master - mean (868ms)  : 832, 904
     .   : milestone, 868,

andrewlock avatar Mar 27 '24 15:03 andrewlock

Benchmarks Report for tracer :snail:

Benchmarks for #5360 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.133
  • 4 benchmarks are slower, with geometric mean 1.178
  • 14 benchmarks have fewer allocations
  • 25 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: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 7.55 KB 7.51 KB -38 B -0.50%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 8.05 KB 7.97 KB -84 B -1.04%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 8.64μs 45.6ns 237ns 0.0212 0.00849 0 7.55 KB
master StartStopWithChild netcoreapp3.1 10.8μs 55.7ns 261ns 0.0169 0.00564 0 7.66 KB
master StartStopWithChild net472 17.1μs 54.3ns 203ns 1.35 0.364 0.101 8.05 KB
#5360 StartStopWithChild net6.0 9μs 49.4ns 297ns 0.026 0.013 0 7.51 KB
#5360 StartStopWithChild netcoreapp3.1 10.9μs 55.7ns 249ns 0.0216 0.0054 0 7.62 KB
#5360 StartStopWithChild net472 17.3μs 44.2ns 165ns 1.34 0.342 0.12 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 480μs 173ns 625ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 628μs 222ns 861ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 836μs 277ns 1.04μs 0.414 0 0 3.3 KB
#5360 WriteAndFlushEnrichedTraces net6.0 472μs 225ns 843ns 0 0 0 2.7 KB
#5360 WriteAndFlushEnrichedTraces netcoreapp3.1 620μs 329ns 1.28μs 0 0 0 2.7 KB
#5360 WriteAndFlushEnrichedTraces net472 840μs 359ns 1.34μs 0.417 0 0 3.3 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 169μs 260ns 1.01μs 0.254 0 0 18.44 KB
master SendRequest netcoreapp3.1 190μs 385ns 1.49μs 0.189 0 0 20.6 KB
master SendRequest net472 0.15ns 0.000779ns 0.00302ns 0 0 0 0 b
#5360 SendRequest net6.0 169μs 114ns 441ns 0.169 0 0 18.35 KB
#5360 SendRequest netcoreapp3.1 193μs 427ns 1.65μs 0.192 0 0 20.51 KB
#5360 SendRequest net472 0.00116ns 0.000481ns 0.0018ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.61 KB 41.91 KB 305 B 0.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 528μs 887ns 3.44μs 0.534 0 0 41.58 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 660μs 3.35μs 14.6μs 0.334 0 0 41.61 KB
master WriteAndFlushEnrichedTraces net472 816μs 2.39μs 8.63μs 8.39 2.52 0.419 53.26 KB
#5360 WriteAndFlushEnrichedTraces net6.0 538μs 1.41μs 5.48μs 0.541 0 0 41.74 KB
#5360 WriteAndFlushEnrichedTraces netcoreapp3.1 643μs 1.52μs 5.87μs 0.319 0 0 41.91 KB
#5360 WriteAndFlushEnrichedTraces net472 799μs 2.83μs 11μs 8.31 2.37 0.396 53.24 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net472 770 B 778 B 8 B 1.04%
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 808 B 816 B 8 B 0.99%
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 808 B 816 B 8 B 0.99%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.04μs 0.548ns 2.12ns 0.0116 0 0 808 B
master ExecuteNonQuery netcoreapp3.1 1.43μs 0.512ns 1.98ns 0.0107 0 0 808 B
master ExecuteNonQuery net472 1.71μs 0.76ns 2.94ns 0.122 0 0 770 B
#5360 ExecuteNonQuery net6.0 1.09μs 0.949ns 3.68ns 0.0114 0 0 816 B
#5360 ExecuteNonQuery netcoreapp3.1 1.5μs 1.15ns 4.45ns 0.0109 0 0 816 B
#5360 ExecuteNonQuery net472 1.75μs 1.47ns 5.7ns 0.124 0 0 778 B
Benchmarks.Trace.ElasticsearchBenchmark - Slower :warning: More allocations :warning:

Slower :warning: in #5360

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0 1.159 1,160.54 1,345.23

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 952 B 960 B 8 B 0.84%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0 976 B 984 B 8 B 0.82%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑netcoreapp3.1 976 B 984 B 8 B 0.82%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net472 995 B 1 KB 8 B 0.80%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑netcoreapp3.1 1.02 KB 1.03 KB 8 B 0.78%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472 1.05 KB 1.06 KB 8 B 0.76%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.16μs 0.724ns 2.71ns 0.0136 0 0 976 B
master CallElasticsearch netcoreapp3.1 1.51μs 0.678ns 2.45ns 0.0128 0 0 976 B
master CallElasticsearch net472 2.54μs 2.36ns 9.13ns 0.157 0 0 995 B
master CallElasticsearchAsync net6.0 1.34μs 1.52ns 5.89ns 0.0134 0 0 952 B
master CallElasticsearchAsync netcoreapp3.1 1.66μs 1.43ns 5.36ns 0.0133 0 0 1.02 KB
master CallElasticsearchAsync net472 2.58μs 1.53ns 5.74ns 0.166 0 0 1.05 KB
#5360 CallElasticsearch net6.0 1.35μs 1.14ns 4.43ns 0.0138 0 0 984 B
#5360 CallElasticsearch netcoreapp3.1 1.53μs 0.902ns 3.49ns 0.0129 0 0 984 B
#5360 CallElasticsearch net472 2.41μs 1.52ns 5.69ns 0.159 0 0 1 KB
#5360 CallElasticsearchAsync net6.0 1.24μs 1.13ns 4.38ns 0.0135 0 0 960 B
#5360 CallElasticsearchAsync netcoreapp3.1 1.7μs 1.08ns 4.17ns 0.0137 0 0 1.03 KB
#5360 CallElasticsearchAsync net472 2.52μs 5ns 18ns 0.167 0 0 1.06 KB
Benchmarks.Trace.GraphQLBenchmark - Faster :tada: More allocations :warning:

Faster :tada: in #5360

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 1.130 1,332.08 1,179.18

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net472 915 B 923 B 8 B 0.87%
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 952 B 960 B 8 B 0.84%
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑netcoreapp3.1 952 B 960 B 8 B 0.84%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.33μs 0.86ns 3.33ns 0.0133 0 0 952 B
master ExecuteAsync netcoreapp3.1 1.64μs 2.13ns 7.96ns 0.0131 0 0 952 B
master ExecuteAsync net472 1.85μs 0.779ns 2.91ns 0.145 0 0 915 B
#5360 ExecuteAsync net6.0 1.18μs 0.705ns 2.64ns 0.0136 0 0 960 B
#5360 ExecuteAsync netcoreapp3.1 1.61μs 0.746ns 2.89ns 0.013 0 0 960 B
#5360 ExecuteAsync net472 1.91μs 0.605ns 2.34ns 0.146 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.2μs 1.51ns 5.64ns 0.0317 0 0 2.22 KB
master SendAsync netcoreapp3.1 5.06μs 2.52ns 9.75ns 0.0355 0 0 2.76 KB
master SendAsync net472 7.63μs 4.19ns 15.7ns 0.494 0 0 3.12 KB
#5360 SendAsync net6.0 4.04μs 1.22ns 4.55ns 0.0324 0 0 2.23 KB
#5360 SendAsync netcoreapp3.1 5.21μs 8.85ns 33.1ns 0.0362 0 0 2.77 KB
#5360 SendAsync net472 7.51μs 2.84ns 10.6ns 0.496 0 0 3.13 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net6.0 1.64 KB 1.6 KB -40 B -2.44%
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑netcoreapp3.1 1.64 KB 1.6 KB -40 B -2.44%
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472 1.57 KB 1.53 KB -40 B -2.55%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 1.41μs 0.423ns 1.47ns 0.0227 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 2.2μs 0.599ns 2.32ns 0.0219 0 0 1.64 KB
master EnrichedLog net472 2.56μs 0.65ns 2.52ns 0.249 0 0 1.57 KB
#5360 EnrichedLog net6.0 1.44μs 0.947ns 3.54ns 0.0226 0 0 1.6 KB
#5360 EnrichedLog netcoreapp3.1 2.35μs 2.38ns 8.91ns 0.0209 0 0 1.6 KB
#5360 EnrichedLog net472 2.6μs 1.21ns 4.53ns 0.242 0 0 1.53 KB
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net472 4.46 KB 4.42 KB -41 B -0.92%
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net6.0 4.28 KB 4.24 KB -40 B -0.93%
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑netcoreapp3.1 4.28 KB 4.24 KB -40 B -0.93%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 115μs 110ns 427ns 0.0567 0 0 4.28 KB
master EnrichedLog netcoreapp3.1 118μs 81.9ns 317ns 0 0 0 4.28 KB
master EnrichedLog net472 148μs 54.5ns 211ns 0.662 0.221 0 4.46 KB
#5360 EnrichedLog net6.0 113μs 121ns 438ns 0.0567 0 0 4.24 KB
#5360 EnrichedLog netcoreapp3.1 119μs 148ns 554ns 0.0587 0 0 4.24 KB
#5360 EnrichedLog net472 148μs 55.9ns 209ns 0.663 0.221 0 4.42 KB
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net6.0 2.2 KB 2.16 KB -40 B -1.82%
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑netcoreapp3.1 2.2 KB 2.16 KB -40 B -1.82%
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472 2.02 KB 1.98 KB -40 B -1.98%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 3.14μs 0.424ns 1.47ns 0.0315 0 0 2.2 KB
master EnrichedLog netcoreapp3.1 4.22μs 2.5ns 9.67ns 0.0299 0 0 2.2 KB
master EnrichedLog net472 4.75μs 1.68ns 6.51ns 0.319 0 0 2.02 KB
#5360 EnrichedLog net6.0 3.05μs 0.873ns 3.27ns 0.0305 0 0 2.16 KB
#5360 EnrichedLog netcoreapp3.1 4.17μs 1.54ns 5.97ns 0.0287 0 0 2.16 KB
#5360 EnrichedLog net472 4.82μs 1.75ns 6.55ns 0.313 0 0 1.98 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.RedisBenchmark.SendReceive‑net6.0 1.14 KB 1.15 KB 8 B 0.70%
Benchmarks.Trace.RedisBenchmark.SendReceive‑netcoreapp3.1 1.14 KB 1.15 KB 8 B 0.70%
Benchmarks.Trace.RedisBenchmark.SendReceive‑net472 1.16 KB 1.16 KB 8 B 0.69%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.29μs 0.488ns 1.83ns 0.0162 0 0 1.14 KB
master SendReceive netcoreapp3.1 1.76μs 0.68ns 2.63ns 0.0158 0 0 1.14 KB
master SendReceive net472 2.16μs 1.36ns 5.1ns 0.183 0 0 1.16 KB
#5360 SendReceive net6.0 1.36μs 0.371ns 1.44ns 0.0164 0 0 1.15 KB
#5360 SendReceive netcoreapp3.1 1.77μs 0.577ns 2.23ns 0.0158 0 0 1.15 KB
#5360 SendReceive net472 2.1μs 0.554ns 2.07ns 0.184 0.00105 0 1.16 KB
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net472 2.04 KB 2 KB -40 B -1.96%
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑netcoreapp3.1 1.65 KB 1.61 KB -40 B -2.43%
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net6.0 1.6 KB 1.56 KB -40 B -2.50%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.79μs 0.839ns 3.25ns 0.0224 0 0 1.6 KB
master EnrichedLog netcoreapp3.1 3.98μs 1.91ns 7.16ns 0.0219 0 0 1.65 KB
master EnrichedLog net472 4.45μs 3.51ns 13.6ns 0.324 0 0 2.04 KB
#5360 EnrichedLog net6.0 2.78μs 1.23ns 4.76ns 0.0222 0 0 1.56 KB
#5360 EnrichedLog netcoreapp3.1 3.97μs 2.11ns 8.18ns 0.0218 0 0 1.61 KB
#5360 EnrichedLog net472 4.39μs 2.54ns 9.82ns 0.317 0 0 2 KB
Benchmarks.Trace.SpanBenchmark - Slower :warning: More allocations :warning:

Slower :warning: in #5360

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 1.202 474.44 570.12
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 1.183 586.21 693.55

Faster :tada: in #5360

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 1.136 460.54 405.37

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 576 B 584 B 8 B 1.39%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 576 B 584 B 8 B 1.39%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 578 B 586 B 8 B 1.38%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 658 B 666 B 8 B 1.22%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 696 B 704 B 8 B 1.15%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 696 B 704 B 8 B 1.15%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 461ns 0.176ns 0.68ns 0.00812 0 0 576 B
master StartFinishSpan netcoreapp3.1 597ns 0.196ns 0.76ns 0.00784 0 0 576 B
master StartFinishSpan net472 585ns 0.883ns 3.42ns 0.0918 0 0 578 B
master StartFinishScope net6.0 474ns 0.124ns 0.481ns 0.0097 0 0 696 B
master StartFinishScope netcoreapp3.1 763ns 0.28ns 1.09ns 0.00922 0 0 696 B
master StartFinishScope net472 883ns 1.33ns 5.15ns 0.105 0 0 658 B
#5360 StartFinishSpan net6.0 404ns 0.56ns 2.17ns 0.00811 0 0 584 B
#5360 StartFinishSpan netcoreapp3.1 593ns 0.405ns 1.57ns 0.00804 0 0 584 B
#5360 StartFinishSpan net472 694ns 0.569ns 2.21ns 0.0931 0 0 586 B
#5360 StartFinishScope net6.0 570ns 0.193ns 0.748ns 0.00992 0 0 704 B
#5360 StartFinishScope netcoreapp3.1 712ns 0.182ns 0.681ns 0.00958 0 0 704 B
#5360 StartFinishScope net472 870ns 0.791ns 2.96ns 0.105 0 0 666 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower :warning: More allocations :warning:

Slower :warning: in #5360

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 1.168 913.35 1,067.15

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 658 B 666 B 8 B 1.22%
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 696 B 704 B 8 B 1.15%
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 696 B 704 B 8 B 1.15%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 661ns 0.321ns 1.24ns 0.00957 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 912ns 0.724ns 2.81ns 0.00909 0 0 696 B
master RunOnMethodBegin net472 1.14μs 0.349ns 1.31ns 0.104 0 0 658 B
#5360 RunOnMethodBegin net6.0 720ns 0.25ns 0.966ns 0.00975 0 0 704 B
#5360 RunOnMethodBegin netcoreapp3.1 1.07μs 0.629ns 2.35ns 0.00931 0 0 704 B
#5360 RunOnMethodBegin net472 1.17μs 0.355ns 1.37ns 0.105 0 0 666 B

andrewlock avatar Mar 27 '24 15:03 andrewlock

Benchmarks Report for appsec :snail:

Benchmarks for #5360 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.148
  • 4 benchmarks have fewer allocations
  • 3 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.Asm.AppSecBodyBenchmark - Faster :tada: Fewer allocations :tada:

Faster :tada: in #5360

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 1.148 235.40 205.03

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net6.0 9.5 KB 9.45 KB -48 B -0.51%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 8.33 KB 8.28 KB -48 B -0.58%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑netcoreapp3.1 6.94 KB 6.89 KB -50 B -0.72%
Benchmarks.Trace.Asm.AppSecBodyBenchmark.AllCycleSimpleBody‑net6.0 6 KB 5.95 KB -44 B -0.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 73.8μs 182ns 703ns 0.0727 0 0 6 KB
master AllCycleSimpleBody netcoreapp3.1 62.2μs 118ns 457ns 0.0925 0 0 6.94 KB
master AllCycleSimpleBody net472 50.7μs 81ns 314ns 1.31 0 0 8.33 KB
master AllCycleMoreComplexBody net6.0 78.5μs 171ns 639ns 0.118 0 0 9.5 KB
master AllCycleMoreComplexBody netcoreapp3.1 70.5μs 160ns 621ns 0.14 0 0 10.36 KB
master AllCycleMoreComplexBody net472 57.7μs 74.8ns 280ns 1.88 0.0285 0 11.84 KB
master ObjectExtractorSimpleBody net6.0 141ns 0.209ns 0.809ns 0.00396 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 235ns 0.19ns 0.736ns 0.00377 0 0 272 B
master ObjectExtractorSimpleBody net472 185ns 0.874ns 3.39ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 3.16μs 3.17ns 12.3ns 0.0535 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.04μs 2.46ns 9.53ns 0.0505 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 3.97μs 2.83ns 10.9ns 0.603 0.00597 0 3.8 KB
#5360 AllCycleSimpleBody net6.0 74.5μs 109ns 421ns 0.0748 0 0 5.95 KB
#5360 AllCycleSimpleBody netcoreapp3.1 63.1μs 107ns 415ns 0.0624 0 0 6.89 KB
#5360 AllCycleSimpleBody net472 49.8μs 73.3ns 274ns 1.29 0 0 8.28 KB
#5360 AllCycleMoreComplexBody net6.0 80.8μs 95.4ns 369ns 0.121 0 0 9.45 KB
#5360 AllCycleMoreComplexBody netcoreapp3.1 70μs 98ns 380ns 0.138 0 0 10.31 KB
#5360 AllCycleMoreComplexBody net472 57.6μs 22.2ns 85.8ns 1.87 0.0287 0 11.79 KB
#5360 ObjectExtractorSimpleBody net6.0 154ns 0.172ns 0.665ns 0.00397 0 0 280 B
#5360 ObjectExtractorSimpleBody netcoreapp3.1 205ns 0.282ns 1.09ns 0.00379 0 0 272 B
#5360 ObjectExtractorSimpleBody net472 189ns 0.385ns 1.49ns 0.0446 0 0 281 B
#5360 ObjectExtractorMoreComplexBody net6.0 3.16μs 3.06ns 11.4ns 0.0539 0 0 3.78 KB
#5360 ObjectExtractorMoreComplexBody netcoreapp3.1 3.98μs 2.64ns 10.2ns 0.0509 0 0 3.69 KB
#5360 ObjectExtractorMoreComplexBody net472 3.99μs 5.2ns 20.1ns 0.602 0.006 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 40.6μs 44ns 170ns 0.449 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 56.6μs 28.1ns 105ns 0.452 0 0 32.4 KB
master EncodeArgs net472 70.8μs 54.2ns 203ns 5.16 0.0712 0 32.5 KB
master EncodeLegacyArgs net6.0 74.6μs 22.1ns 82.5ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 105μs 409ns 1.58μs 0 0 0 2.15 KB
master EncodeLegacyArgs net472 154μs 85ns 329ns 0.308 0 0 2.15 KB
#5360 EncodeArgs net6.0 40μs 29.2ns 113ns 0.441 0 0 32.4 KB
#5360 EncodeArgs netcoreapp3.1 55.7μs 20.9ns 78.3ns 0.444 0 0 32.4 KB
#5360 EncodeArgs net472 71.4μs 53.4ns 200ns 5.13 0.0708 0 32.5 KB
#5360 EncodeLegacyArgs net6.0 77.6μs 41.6ns 161ns 0 0 0 2.14 KB
#5360 EncodeLegacyArgs netcoreapp3.1 105μs 76.2ns 295ns 0 0 0 2.14 KB
#5360 EncodeLegacyArgs net472 156μs 74.4ns 288ns 0.313 0 0 2.15 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 186μs 168ns 650ns 0 0 0 2.42 KB
master RunWafRealisticBenchmark netcoreapp3.1 199μs 82.8ns 298ns 0 0 0 2.37 KB
master RunWafRealisticBenchmark net472 218μs 130ns 503ns 0.327 0 0 2.43 KB
master RunWafRealisticBenchmarkWithAttack net6.0 124μs 106ns 412ns 0 0 0 1.46 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 132μs 153ns 572ns 0 0 0 1.45 KB
master RunWafRealisticBenchmarkWithAttack net472 143μs 224ns 869ns 0.215 0 0 1.48 KB
#5360 RunWafRealisticBenchmark net6.0 185μs 163ns 610ns 0 0 0 2.42 KB
#5360 RunWafRealisticBenchmark netcoreapp3.1 200μs 254ns 952ns 0 0 0 2.37 KB
#5360 RunWafRealisticBenchmark net472 220μs 168ns 652ns 0.329 0 0 2.43 KB
#5360 RunWafRealisticBenchmarkWithAttack net6.0 124μs 85.3ns 331ns 0 0 0 1.46 KB
#5360 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 133μs 106ns 395ns 0 0 0 1.45 KB
#5360 RunWafRealisticBenchmarkWithAttack net472 143μs 56.1ns 210ns 0.215 0 0 1.48 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 59.06 KB 59.89 KB 824 B 1.40%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 253.38 KB 256.3 KB 2.91 KB 1.15%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 252.37 KB 254.19 KB 1.82 KB 0.72%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 63.9μs 688ns 6.84μs 0 0 0 43.44 KB
master StringConcatBenchmark netcoreapp3.1 64.7μs 841ns 8.28μs 0 0 0 42.64 KB
master StringConcatBenchmark net472 39.1μs 184ns 688ns 0 0 0 59.06 KB
master StringConcatAspectBenchmark net6.0 296μs 3.27μs 31.7μs 0 0 0 253.38 KB
master StringConcatAspectBenchmark netcoreapp3.1 352μs 2.21μs 21.5μs 0 0 0 252.37 KB
master StringConcatAspectBenchmark net472 327μs 5.95μs 58.9μs 0 0 0 278.53 KB
#5360 StringConcatBenchmark net6.0 63.6μs 805ns 8.01μs 0 0 0 43.44 KB
#5360 StringConcatBenchmark netcoreapp3.1 64.5μs 901ns 8.78μs 0 0 0 42.64 KB
#5360 StringConcatBenchmark net472 38.8μs 180ns 673ns 0 0 0 59.89 KB
#5360 StringConcatAspectBenchmark net6.0 329μs 1.78μs 13.3μs 0 0 0 256.3 KB
#5360 StringConcatAspectBenchmark netcoreapp3.1 351μs 1.71μs 10.7μs 0 0 0 254.19 KB
#5360 StringConcatAspectBenchmark net472 311μs 4.97μs 47.4μs 0 0 0 278.53 KB

andrewlock avatar Mar 28 '24 22: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 (5360) (11.235M)   : 0, 11234500
    master (11.209M)   : 0, 11209172
    benchmarks/2.9.0 (11.345M)   : 0, 11344659

    section Automatic
    This PR (5360) (7.693M)   : 0, 7692725
    master (7.650M)   : 0, 7650063
    benchmarks/2.9.0 (7.909M)   : 0, 7908964

    section Trace stats
    master (7.837M)   : 0, 7836514

    section Manual
    This PR (5360) (9.722M)   : 0, 9721858
    master (9.801M)   : 0, 9800780

    section Manual + Automatic
    This PR (5360) (6.912M)   : 0, 6912205
    master (7.162M)   : 0, 7161859

    section Version Conflict
    master (6.431M)   : 0, 6430935

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5360) (9.735M)   : 0, 9734529
    master (9.621M)   : 0, 9620797
    benchmarks/2.9.0 (9.624M)   : 0, 9623972

    section Automatic
    This PR (5360) (6.618M)   : 0, 6617940
    master (6.683M)   : 0, 6683301

    section Trace stats
    master (6.985M)   : 0, 6984579

    section Manual
    This PR (5360) (8.351M)   : 0, 8350903
    master (8.217M)   : 0, 8216851

    section Manual + Automatic
    This PR (5360) (6.153M)   : 0, 6152853
    master (6.203M)   : 0, 6202649

    section Version Conflict
    master (5.681M)   : 0, 5681280

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (5360) (10.079M)   : 0, 10079012
    master (10.108M)   : 0, 10108183
    benchmarks/2.9.0 (9.811M)   : 0, 9811314

    section Automatic
    This PR (5360) (6.991M)   : 0, 6990702
    master (7.102M)   : 0, 7101824
    benchmarks/2.9.0 (7.273M)   : 0, 7272966

    section Trace stats
    master (7.391M)   : 0, 7391133

    section Manual
    This PR (5360) (8.718M)   : 0, 8717583
    master (8.800M)   : 0, 8800179

    section Manual + Automatic
    This PR (5360) (6.748M)   : 0, 6747910
    master (6.928M)   : 0, 6928216

    section Version Conflict
    master (6.177M)   : 0, 6177156

andrewlock avatar Mar 28 '24 23:03 andrewlock

Datadog Report

Branch report: lpimentel/sampling-rate-tags Commit report: 4ee5dbf Test service: dd-trace-dotnet

:white_check_mark: 0 Failed, 52 Passed, 0 Skipped, 34m 1.15s Total Time

datadog-ddstaging[bot] avatar May 14 '24 19:05 datadog-ddstaging[bot]

Benchmarks

Benchmarks Report for benchmark platform :snail:

Benchmarks for #5360 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.125
  • 42 benchmarks have fewer allocations
  • 13 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: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 5.54 KB 5.5 KB -40 B -0.72%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.75 KB 5.63 KB -119 B -2.07%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.22 KB 6.05 KB -170 B -2.74%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.3μs 54.7ns 346ns 0 0 0 5.54 KB
master StartStopWithChild netcoreapp3.1 12.8μs 38.9ns 140ns 0 0 0 5.75 KB
master StartStopWithChild net472 22.3μs 119ns 619ns 0.965 0.214 0 6.22 KB
#5360 StartStopWithChild net6.0 10.4μs 57.3ns 334ns 0 0 0 5.5 KB
#5360 StartStopWithChild netcoreapp3.1 13.7μs 68.7ns 299ns 0 0 0 5.63 KB
#5360 StartStopWithChild net472 22.2μs 128ns 1.09μs 0.916 0.343 0 6.05 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 3.33 KB 3.31 KB -23 B -0.69%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 925μs 62ns 223ns 0 0 0 2.71 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.03ms 42.3ns 153ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.26ms 323ns 1.25μs 0 0 0 3.33 KB
#5360 WriteAndFlushEnrichedTraces net6.0 917μs 38.8ns 140ns 0 0 0 2.71 KB
#5360 WriteAndFlushEnrichedTraces netcoreapp3.1 1.01ms 216ns 835ns 0 0 0 2.7 KB
#5360 WriteAndFlushEnrichedTraces net472 1.2ms 262ns 1.01μs 0 0 0 3.31 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 329μs 186ns 695ns 0 0 0 197.06 KB
master AllCycleSimpleBody netcoreapp3.1 500μs 1.76μs 6.81μs 0 0 0 204.77 KB
master AllCycleSimpleBody net472 442μs 186ns 719ns 36.6 2.16 0 236.35 KB
master AllCycleMoreComplexBody net6.0 337μs 1.48μs 5.74μs 0 0 0 200.56 KB
master AllCycleMoreComplexBody netcoreapp3.1 493μs 2.25μs 8.72μs 0 0 0 208.18 KB
master AllCycleMoreComplexBody net472 448μs 172ns 667ns 37.9 2.23 0 239.88 KB
master ObjectExtractorSimpleBody net6.0 338ns 0.159ns 0.573ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 394ns 2.14ns 11.7ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 308ns 0.018ns 0.0674ns 0.0435 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.26μs 31.6ns 134ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.82μs 39.6ns 194ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.67μs 1.34ns 4.65ns 0.571 0 0 3.8 KB
#5360 AllCycleSimpleBody net6.0 336μs 1.59μs 6.34μs 0 0 0 197.05 KB
#5360 AllCycleSimpleBody netcoreapp3.1 474μs 1.84μs 7.13μs 0 0 0 204.76 KB
#5360 AllCycleSimpleBody net472 443μs 132ns 510ns 36.6 2.16 0 236.35 KB
#5360 AllCycleMoreComplexBody net6.0 347μs 529ns 2.05μs 0 0 0 200.56 KB
#5360 AllCycleMoreComplexBody netcoreapp3.1 499μs 2.45μs 10.9μs 0 0 0 208.18 KB
#5360 AllCycleMoreComplexBody net472 447μs 148ns 574ns 37.9 2.23 0 239.86 KB
#5360 ObjectExtractorSimpleBody net6.0 320ns 0.147ns 0.55ns 0 0 0 280 B
#5360 ObjectExtractorSimpleBody netcoreapp3.1 397ns 2.14ns 11.9ns 0 0 0 272 B
#5360 ObjectExtractorSimpleBody net472 303ns 0.0645ns 0.25ns 0.0442 0 0 281 B
#5360 ObjectExtractorMoreComplexBody net6.0 6.43μs 30.4ns 118ns 0 0 0 3.78 KB
#5360 ObjectExtractorMoreComplexBody netcoreapp3.1 7.71μs 35.2ns 141ns 0 0 0 3.69 KB
#5360 ObjectExtractorMoreComplexBody net472 6.86μs 3.33ns 12.9ns 0.587 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Unknown :shrug: More allocations :warning:

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net6.0 0 b 32.41 KB 32.41 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑netcoreapp3.1 0 b 32.4 KB 32.4 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeArgs‑net472 0 b 32.51 KB 32.51 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net6.0 0 b 2.16 KB 2.16 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑netcoreapp3.1 0 b 2.14 KB 2.14 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark.EncodeLegacyArgs‑net472 0 b 2.16 KB 2.16 KB

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
master EncodeArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master EncodeArgs net472 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs net6.0 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master EncodeLegacyArgs net472 N/A N/A N/A NaN NaN NaN 0 b
#5360 EncodeArgs net6.0 74μs 21.6ns 80.7ns 0 0 0 32.41 KB
#5360 EncodeArgs netcoreapp3.1 94.3μs 275ns 1.07μs 0 0 0 32.4 KB
#5360 EncodeArgs net472 104μs 31.3ns 121ns 4.7 0 0 32.51 KB
#5360 EncodeLegacyArgs net6.0 144μs 42.6ns 159ns 0 0 0 2.16 KB
#5360 EncodeLegacyArgs netcoreapp3.1 202μs 157ns 608ns 0 0 0 2.14 KB
#5360 EncodeLegacyArgs net472 261μs 48.4ns 187ns 0 0 0 2.16 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Unknown :shrug: More allocations :warning:

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑net6.0 0 b 4.55 KB 4.55 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑netcoreapp3.1 0 b 4.48 KB 4.48 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmark‑net472 0 b 4.66 KB 4.66 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑net6.0 0 b 2.24 KB 2.24 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑netcoreapp3.1 0 b 2.22 KB 2.22 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark.RunWafRealisticBenchmarkWithAttack‑net472 0 b 2.28 KB 2.28 KB

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmark netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmark net472 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack net6.0 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 N/A N/A N/A NaN NaN NaN 0 b
master RunWafRealisticBenchmarkWithAttack net472 N/A N/A N/A NaN NaN NaN 0 b
#5360 RunWafRealisticBenchmark net6.0 270μs 94ns 364ns 0 0 0 4.55 KB
#5360 RunWafRealisticBenchmark netcoreapp3.1 290μs 43ns 149ns 0 0 0 4.48 KB
#5360 RunWafRealisticBenchmark net472 306μs 43ns 167ns 0 0 0 4.66 KB
#5360 RunWafRealisticBenchmarkWithAttack net6.0 181μs 65.2ns 253ns 0 0 0 2.24 KB
#5360 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 194μs 195ns 703ns 0 0 0 2.22 KB
#5360 RunWafRealisticBenchmarkWithAttack net472 205μs 26.3ns 98.5ns 0 0 0 2.28 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 155ns 582ns 0 0 0 14.53 KB
master SendRequest netcoreapp3.1 71.7μs 347ns 1.84μs 0 0 0 17.42 KB
master SendRequest net472 0.0114ns 0.00164ns 0.00634ns 0 0 0 0 b
#5360 SendRequest net6.0 60.3μs 34.4ns 129ns 0 0 0 14.52 KB
#5360 SendRequest netcoreapp3.1 70.2μs 57.2ns 206ns 0 0 0 17.42 KB
#5360 SendRequest net472 0.0163ns 0.00136ns 0.00525ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #5360

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 1.125 1,009,717.41 897,141.02

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 741μs 3.45μs 13.4μs 0 0 0 41.64 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 660μs 580ns 2.01μs 0 0 0 41.98 KB
master WriteAndFlushEnrichedTraces net472 1ms 5.43μs 29.2μs 4.46 0 0 55.84 KB
#5360 WriteAndFlushEnrichedTraces net6.0 781μs 1.61μs 6.24μs 0 0 0 41.85 KB
#5360 WriteAndFlushEnrichedTraces netcoreapp3.1 705μs 3.78μs 21.1μs 0 0 0 42.12 KB
#5360 WriteAndFlushEnrichedTraces net472 898μs 3.04μs 11.8μs 7.81 0 0 55.9 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net6.0 1.03 KB 1.02 KB -8 B -0.78%
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 1.02 KB 1.02 KB -8 B -0.78%
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net472 995 B 987 B -8 B -0.80%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.9μs 9.03ns 38.3ns 0 0 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 2.47μs 9.49ns 36.8ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.83μs 7.79ns 30.2ns 0.154 0.014 0 995 B
#5360 ExecuteNonQuery net6.0 2.03μs 8.64ns 33.5ns 0 0 0 1.02 KB
#5360 ExecuteNonQuery netcoreapp3.1 2.48μs 11.8ns 48.6ns 0 0 0 1.02 KB
#5360 ExecuteNonQuery net472 2.71μs 3.09ns 12ns 0.146 0.0133 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472 1.11 KB 1.1 KB -8 B -0.72%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑netcoreapp3.1 1.09 KB 1.08 KB -8 B -0.74%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net472 1.05 KB 1.04 KB -8 B -0.76%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0 1.04 KB 1.03 KB -8 B -0.77%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑netcoreapp3.1 1.04 KB 1.03 KB -8 B -0.77%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net6.0 1.02 KB 1.01 KB -8 B -0.79%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.79μs 7.36ns 28.5ns 0 0 0 1.04 KB
master CallElasticsearch netcoreapp3.1 2.24μs 10.3ns 40ns 0 0 0 1.04 KB
master CallElasticsearch net472 3.54μs 2.27ns 8.17ns 0.159 0 0 1.05 KB
master CallElasticsearchAsync net6.0 1.78μs 6.25ns 24.2ns 0 0 0 1.02 KB
master CallElasticsearchAsync netcoreapp3.1 2.41μs 9.53ns 36.9ns 0 0 0 1.09 KB
master CallElasticsearchAsync net472 3.77μs 1.95ns 7.54ns 0.169 0 0 1.11 KB
#5360 CallElasticsearch net6.0 1.78μs 7.08ns 27.4ns 0 0 0 1.03 KB
#5360 CallElasticsearch netcoreapp3.1 2.33μs 7.63ns 29.6ns 0 0 0 1.03 KB
#5360 CallElasticsearch net472 3.57μs 1.91ns 7.38ns 0.16 0 0 1.04 KB
#5360 CallElasticsearchAsync net6.0 1.87μs 8ns 31ns 0 0 0 1.01 KB
#5360 CallElasticsearchAsync netcoreapp3.1 2.44μs 9.3ns 36ns 0 0 0 1.08 KB
#5360 CallElasticsearchAsync net472 3.8μs 4.57ns 17.7ns 0.172 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net6.0 960 B 952 B -8 B -0.83%
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑netcoreapp3.1 960 B 952 B -8 B -0.83%
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net472 923 B 915 B -8 B -0.87%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.78μs 3.2ns 12ns 0 0 0 960 B
master ExecuteAsync netcoreapp3.1 2.29μs 8.25ns 31.9ns 0 0 0 960 B
master ExecuteAsync net472 2.57μs 0.932ns 3.61ns 0.142 0 0 923 B
#5360 ExecuteAsync net6.0 1.84μs 0.451ns 1.63ns 0 0 0 952 B
#5360 ExecuteAsync netcoreapp3.1 2.26μs 8.69ns 33.7ns 0 0 0 952 B
#5360 ExecuteAsync net472 2.64μs 3.05ns 11.8ns 0.133 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 7.19μs 11.5ns 44.5ns 0 0 0 2.37 KB
master SendAsync netcoreapp3.1 8.75μs 31.5ns 122ns 0 0 0 2.9 KB
master SendAsync net472 12.3μs 14.1ns 54.7ns 0.494 0 0 3.19 KB
#5360 SendAsync net6.0 7μs 16ns 61.9ns 0 0 0 2.36 KB
#5360 SendAsync netcoreapp3.1 8.92μs 26.4ns 102ns 0 0 0 2.9 KB
#5360 SendAsync net472 12.3μs 7.7ns 29.8ns 0.489 0 0 3.18 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net6.0 43.19 KB 43.48 KB 288 B 0.67%

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 275.55 KB 257.67 KB -17.88 KB -6.49%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑netcoreapp3.1 86.54 KB 42.84 KB -43.7 KB -50.50%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44.8μs 242ns 1.28μs 0 0 0 43.19 KB
master StringConcatBenchmark netcoreapp3.1 50μs 296ns 2.73μs 0 0 0 86.54 KB
master StringConcatBenchmark net472 57.3μs 246ns 984ns 0 0 0 57.34 KB
master StringConcatAspectBenchmark net6.0 470μs 2.17μs 7.82μs 0 0 0 277.27 KB
master StringConcatAspectBenchmark netcoreapp3.1 519μs 2.17μs 8.42μs 0 0 0 275.55 KB
master StringConcatAspectBenchmark net472 409μs 2.08μs 10.2μs 0 0 0 286.72 KB
#5360 StringConcatBenchmark net6.0 43.1μs 246ns 1.87μs 0 0 0 43.48 KB
#5360 StringConcatBenchmark netcoreapp3.1 51.5μs 654ns 6.44μs 0 0 0 42.84 KB
#5360 StringConcatBenchmark net472 57.5μs 147ns 529ns 0 0 0 57.34 KB
#5360 StringConcatAspectBenchmark net6.0 493μs 2.05μs 7.1μs 0 0 0 276.03 KB
#5360 StringConcatAspectBenchmark netcoreapp3.1 508μs 2.59μs 11.6μs 0 0 0 257.67 KB
#5360 StringConcatAspectBenchmark net472 424μs 1.9μs 7.37μs 0 0 0 286.72 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net6.0 1.76 KB 1.7 KB -56 B -3.18%
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑netcoreapp3.1 1.76 KB 1.7 KB -56 B -3.18%
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472 1.69 KB 1.64 KB -56 B -3.31%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.57μs 9.97ns 35.9ns 0 0 0 1.76 KB
master EnrichedLog netcoreapp3.1 3.72μs 17.6ns 72.7ns 0 0 0 1.76 KB
master EnrichedLog net472 3.96μs 5.46ns 20.4ns 0.256 0 0 1.69 KB
#5360 EnrichedLog net6.0 2.6μs 12.8ns 51ns 0 0 0 1.7 KB
#5360 EnrichedLog netcoreapp3.1 3.5μs 9.04ns 35ns 0 0 0 1.7 KB
#5360 EnrichedLog net472 3.88μs 2.64ns 10.2ns 0.252 0 0 1.64 KB
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net472 4.57 KB 4.52 KB -54 B -1.18%
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net6.0 4.37 KB 4.31 KB -56 B -1.28%
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑netcoreapp3.1 4.37 KB 4.31 KB -56 B -1.28%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 123μs 54.9ns 198ns 0 0 0 4.37 KB
master EnrichedLog netcoreapp3.1 128μs 61.6ns 230ns 0 0 0 4.37 KB
master EnrichedLog net472 168μs 59.9ns 232ns 0 0 0 4.57 KB
#5360 EnrichedLog net6.0 123μs 176ns 682ns 0 0 0 4.31 KB
#5360 EnrichedLog netcoreapp3.1 128μs 109ns 408ns 0 0 0 4.31 KB
#5360 EnrichedLog net472 167μs 110ns 427ns 0 0 0 4.52 KB
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net6.0 2.32 KB 2.26 KB -56 B -2.41%
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑netcoreapp3.1 2.32 KB 2.26 KB -56 B -2.41%
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472 2.14 KB 2.08 KB -56 B -2.62%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 5.04μs 20.8ns 77.7ns 0 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 6.56μs 21.4ns 80ns 0 0 0 2.32 KB
master EnrichedLog net472 7.66μs 7.85ns 30.4ns 0.306 0 0 2.14 KB
#5360 EnrichedLog net6.0 5.01μs 13ns 50.4ns 0 0 0 2.26 KB
#5360 EnrichedLog netcoreapp3.1 6.83μs 10.5ns 40.8ns 0 0 0 2.26 KB
#5360 EnrichedLog net472 7.62μs 3.73ns 14ns 0.302 0 0 2.08 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.RedisBenchmark.SendReceive‑net472 1.21 KB 1.2 KB -8 B -0.66%
Benchmarks.Trace.RedisBenchmark.SendReceive‑net6.0 1.21 KB 1.2 KB -8 B -0.66%
Benchmarks.Trace.RedisBenchmark.SendReceive‑netcoreapp3.1 1.21 KB 1.2 KB -8 B -0.66%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 2μs 2.46ns 9.53ns 0 0 0 1.21 KB
master SendReceive netcoreapp3.1 2.61μs 12.9ns 53ns 0 0 0 1.21 KB
master SendReceive net472 3.13μs 1.47ns 5.69ns 0.187 0 0 1.21 KB
#5360 SendReceive net6.0 2.02μs 1.24ns 4.62ns 0 0 0 1.2 KB
#5360 SendReceive netcoreapp3.1 2.65μs 9.08ns 35.1ns 0 0 0 1.2 KB
#5360 SendReceive net472 3.19μs 1.08ns 4.03ns 0.176 0 0 1.2 KB
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net472 2.08 KB 2.03 KB -56 B -2.69%
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑netcoreapp3.1 1.69 KB 1.63 KB -56 B -3.32%
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net6.0 1.64 KB 1.58 KB -56 B -3.41%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.06μs 1.06ns 3.67ns 0 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 5.56μs 7.29ns 28.2ns 0 0 0 1.69 KB
master EnrichedLog net472 6.86μs 5.61ns 21.7ns 0.307 0 0 2.08 KB
#5360 EnrichedLog net6.0 4.16μs 4.93ns 19.1ns 0 0 0 1.58 KB
#5360 EnrichedLog netcoreapp3.1 5.65μs 14.9ns 55.9ns 0 0 0 1.63 KB
#5360 EnrichedLog net472 6.63μs 13.4ns 51.9ns 0.295 0 0 2.03 KB
Benchmarks.Trace.SpanBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 704 B 696 B -8 B -1.14%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 704 B 696 B -8 B -1.14%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 666 B 658 B -8 B -1.20%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 586 B 578 B -8 B -1.37%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net6.0 584 B 576 B -8 B -1.37%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 584 B 576 B -8 B -1.37%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 746ns 4.17ns 23.2ns 0 0 0 584 B
master StartFinishSpan netcoreapp3.1 974ns 1.28ns 4.95ns 0 0 0 584 B
master StartFinishSpan net472 907ns 0.12ns 0.467ns 0.0913 0 0 586 B
master StartFinishScope net6.0 899ns 0.252ns 0.873ns 0 0 0 704 B
master StartFinishScope netcoreapp3.1 1.16μs 5.34ns 21.4ns 0 0 0 704 B
master StartFinishScope net472 1.12μs 0.161ns 0.622ns 0.103 0 0 666 B
#5360 StartFinishSpan net6.0 762ns 3.65ns 15.5ns 0 0 0 576 B
#5360 StartFinishSpan netcoreapp3.1 937ns 5.16ns 30.1ns 0 0 0 576 B
#5360 StartFinishSpan net472 930ns 0.0726ns 0.271ns 0.0893 0 0 578 B
#5360 StartFinishScope net6.0 910ns 3.77ns 13.1ns 0 0 0 696 B
#5360 StartFinishScope netcoreapp3.1 1.2μs 6.14ns 28.1ns 0 0 0 696 B
#5360 StartFinishScope net472 1.1μs 0.668ns 2.59ns 0.0997 0 0 658 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #5360

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net6.0 704 B 696 B -8 B -1.14%
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 704 B 696 B -8 B -1.14%
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 666 B 658 B -8 B -1.20%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 1μs 4.83ns 19.9ns 0 0 0 704 B
master RunOnMethodBegin netcoreapp3.1 1.38μs 7.18ns 33.7ns 0 0 0 704 B
master RunOnMethodBegin net472 1.37μs 0.115ns 0.415ns 0.103 0 0 666 B
#5360 RunOnMethodBegin net6.0 1.03μs 4.65ns 18ns 0 0 0 696 B
#5360 RunOnMethodBegin netcoreapp3.1 1.38μs 0.757ns 2.93ns 0 0 0 696 B
#5360 RunOnMethodBegin net472 1.45μs 0.47ns 1.76ns 0.101 0 0 658 B

pr-commenter[bot] avatar May 15 '25 16:05 pr-commenter[bot]

Datadog Report

All test runs c8049fc :link:

:white_check_mark: 2 Total Test Services: 0 Failed, 2 Passed

Test Services
Service Name Failed Known Flaky New Flaky Passed Skipped Total Time Test Service View
dd-trace-dotnet 0 0 0 253156 2310 17h 44m 45.6s Link
exploration_tests 0 0 0 22085 3 2m 15.92s Link