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

Baggage part 1/3: change propagator signatures

Open lucaspimentel opened this issue 1 year ago • 5 comments

Summary of changes

First of multiple PRs to add OpenTelemetry baggage support.

This PR prepares propagators to support baggage. Since all propagators are currently trace propagators and work on SpanContext, this PR changes all propagator signatures to accept or return a new PropationContext instead. PropationContext is a light container for both the existing SpanContext and the new Baggage type.

Baggage progpation across services is not implemented in this PR.

Reason for change

Adding support for OpenTelemetry baggage.

Implementation details

  • Add Baggage class
  • Add PropagationContext, which contains SpanContext and Baggage
  • Modify all propagator signatures (and usages) to replace SpanContext with PropagationContext

Test coverage

  • added unit tests for Baggage (get, set, remove, etc)
  • existing propagators are already covered by extensive tests

Other details

lucaspimentel avatar Oct 15 '24 20:10 lucaspimentel

  • #6190 Graphite
  • #6158 Graphite
  • #6157 Graphite 👈
  • master

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @lucaspimentel and the rest of your teammates on Graphite Graphite

lucaspimentel avatar Oct 15 '24 20:10 lucaspimentel

Datadog Report

Branch report: lpimentel/baggage-datadog-api-1 Commit report: 6c5a422 Test service: dd-trace-dotnet

:white_check_mark: 0 Failed, 365792 Passed, 2090 Skipped, 15h 38m 23.02s Total Time

datadog-ddstaging[bot] avatar Oct 15 '24 20:10 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 (6157) - mean (71ms)  : 68, 74
     .   : milestone, 71,
    master - mean (70ms)  : 68, 73
     .   : milestone, 70,

    section CallTarget+Inlining+NGEN
    This PR (6157) - mean (1,115ms)  : 1088, 1142
     .   : milestone, 1115,
    master - mean (1,117ms)  : 1095, 1139
     .   : milestone, 1117,

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

    section CallTarget+Inlining+NGEN
    This PR (6157) - mean (775ms)  : 757, 793
     .   : milestone, 775,
    master - mean (777ms)  : 762, 791
     .   : milestone, 777,

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

    section CallTarget+Inlining+NGEN
    This PR (6157) - mean (731ms)  : 713, 748
     .   : milestone, 731,
    master - mean (734ms)  : 717, 751
     .   : milestone, 734,

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

    section CallTarget+Inlining+NGEN
    This PR (6157) - mean (1,225ms)  : 1196, 1253
     .   : milestone, 1225,
    master - mean (1,204ms)  : 1177, 1232
     .   : milestone, 1204,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (6157) - mean (276ms)  : 271, 282
     .   : milestone, 276,
    master - mean (275ms)  : 270, 281
     .   : milestone, 275,

    section CallTarget+Inlining+NGEN
    This PR (6157) - mean (942ms)  : 922, 962
     .   : milestone, 942,
    master - mean (948ms)  : 927, 969
     .   : milestone, 948,

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

    section CallTarget+Inlining+NGEN
    This PR (6157) - mean (928ms)  : 905, 951
     .   : milestone, 928,
    master - mean (929ms)  : 912, 946
     .   : milestone, 929,

andrewlock avatar Oct 18 '24 20:10 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 (6157) (11.095M)   : 0, 11095090
    master (11.226M)   : 0, 11226424
    benchmarks/2.9.0 (11.081M)   : 0, 11080577

    section Automatic
    This PR (6157) (7.176M)   : 0, 7176106
    master (7.333M)   : 0, 7332814
    benchmarks/2.9.0 (7.732M)   : 0, 7732233

    section Trace stats
    master (7.694M)   : 0, 7694111

    section Manual
    master (10.976M)   : 0, 10975947

    section Manual + Automatic
    This PR (6157) (6.736M)   : 0, 6736190
    master (6.797M)   : 0, 6796973

    section DD_TRACE_ENABLED=0
    master (10.273M)   : 0, 10272898

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (6157) (9.569M)   : 0, 9569188
    master (9.814M)   : 0, 9814194
    benchmarks/2.9.0 (9.798M)   : 0, 9798067

    section Automatic
    This PR (6157) (6.451M)   : 0, 6450609
    master (6.631M)   : 0, 6631124

    section Trace stats
    master (6.694M)   : 0, 6694154

    section Manual
    master (9.462M)   : 0, 9461559

    section Manual + Automatic
    This PR (6157) (6.120M)   : 0, 6120243
    master (6.167M)   : 0, 6166825

    section DD_TRACE_ENABLED=0
    master (8.879M)   : 0, 8879082

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (6157) (9.927M)   : 0, 9927144
    master (9.833M)   : 0, 9833269
    benchmarks/2.9.0 (10.067M)   : 0, 10067315

    section Automatic
    This PR (6157) (6.175M)   : 0, 6174627
    master (6.309M)   : 0, 6308709
    benchmarks/2.9.0 (7.552M)   : 0, 7552193

    section Trace stats
    master (7.061M)   : 0, 7060512

    section Manual
    master (9.653M)   : 0, 9652511

    section Manual + Automatic
    This PR (6157) (5.682M)   : 0, 5682246
    master (5.845M)   : 0, 5844711

    section DD_TRACE_ENABLED=0
    master (9.195M)   : 0, 9195277

andrewlock avatar Oct 18 '24 20:10 andrewlock

Benchmarks Report for tracer :snail:

Benchmarks for #6157 compared to master:

  • All benchmarks have the same speed
  • 8 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 #6157

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑netcoreapp3.1 5.61 KB 5.8 KB 191 B 3.40%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net6.0 5.43 KB 5.61 KB 183 B 3.37%
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6.06 KB 6.2 KB 148 B 2.44%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 7.7μs 44.5ns 378ns 0.0151 0.00756 0 5.43 KB
master StartStopWithChild netcoreapp3.1 9.91μs 54.8ns 338ns 0.0196 0.00979 0 5.61 KB
master StartStopWithChild net472 16.4μs 58.8ns 228ns 1 0.3 0.081 6.06 KB
#6157 StartStopWithChild net6.0 8.22μs 47.1ns 377ns 0.0128 0.00426 0 5.61 KB
#6157 StartStopWithChild netcoreapp3.1 10.1μs 56.4ns 338ns 0.015 0.005 0 5.8 KB
#6157 StartStopWithChild net472 17.8μs 80.5ns 312ns 1.06 0.335 0.0883 6.2 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 492μs 477ns 1.85μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 660μs 300ns 1.12μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 838μs 611ns 2.28μs 0.417 0 0 3.3 KB
#6157 WriteAndFlushEnrichedTraces net6.0 474μs 289ns 1.12μs 0 0 0 2.7 KB
#6157 WriteAndFlushEnrichedTraces netcoreapp3.1 650μs 197ns 738ns 0 0 0 2.7 KB
#6157 WriteAndFlushEnrichedTraces net472 845μs 438ns 1.69μs 0.419 0 0 3.3 KB
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #6157

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑net6.0 18.45 KB 18.73 KB 281 B 1.52%
Benchmarks.Trace.AspNetCoreBenchmark.SendRequest‑netcoreapp3.1 20.61 KB 20.89 KB 280 B 1.36%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 214μs 1.25μs 12.1μs 0.218 0 0 18.45 KB
master SendRequest netcoreapp3.1 241μs 1.37μs 10.5μs 0.236 0 0 20.61 KB
master SendRequest net472 0.00301ns 0.0011ns 0.00426ns 0 0 0 0 b
#6157 SendRequest net6.0 216μs 1.25μs 10.6μs 0.208 0 0 18.73 KB
#6157 SendRequest netcoreapp3.1 241μs 1.41μs 13μs 0.244 0 0 20.89 KB
#6157 SendRequest net472 0.00152ns 0.00063ns 0.00236ns 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 616μs 3.53μs 25.4μs 0.625 0 0 41.65 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 745μs 3.82μs 19.1μs 0.342 0 0 41.77 KB
master WriteAndFlushEnrichedTraces net472 926μs 4.67μs 20.4μs 8.4 2.33 0.466 53.33 KB
#6157 WriteAndFlushEnrichedTraces net6.0 598μs 3.24μs 18.3μs 0.581 0 0 41.6 KB
#6157 WriteAndFlushEnrichedTraces netcoreapp3.1 722μs 4.19μs 35.8μs 0.338 0 0 41.85 KB
#6157 WriteAndFlushEnrichedTraces net472 863μs 4.09μs 15.8μs 8.3 2.62 0.437 53.29 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 1.29ns 4.98ns 0.0143 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 1.77μs 5.81ns 21ns 0.0139 0 0 1.02 KB
master ExecuteNonQuery net472 2.09μs 1.33ns 5.16ns 0.156 0.00105 0 987 B
#6157 ExecuteNonQuery net6.0 1.32μs 1.73ns 6.46ns 0.0145 0 0 1.02 KB
#6157 ExecuteNonQuery netcoreapp3.1 1.77μs 1.17ns 4.54ns 0.0133 0 0 1.02 KB
#6157 ExecuteNonQuery net472 2.11μs 2.32ns 8.97ns 0.156 0.00106 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.22μs 0.299ns 1.16ns 0.0135 0 0 976 B
master CallElasticsearch netcoreapp3.1 1.44μs 0.845ns 3.16ns 0.0131 0 0 976 B
master CallElasticsearch net472 2.59μs 2.03ns 7.85ns 0.157 0 0 995 B
master CallElasticsearchAsync net6.0 1.38μs 0.775ns 2.9ns 0.0131 0 0 952 B
master CallElasticsearchAsync netcoreapp3.1 1.52μs 0.687ns 2.48ns 0.0138 0 0 1.02 KB
master CallElasticsearchAsync net472 2.58μs 1.61ns 6.24ns 0.167 0 0 1.05 KB
#6157 CallElasticsearch net6.0 1.26μs 0.77ns 2.98ns 0.0139 0 0 976 B
#6157 CallElasticsearch netcoreapp3.1 1.49μs 0.805ns 2.9ns 0.0136 0 0 976 B
#6157 CallElasticsearch net472 2.54μs 1.93ns 7.47ns 0.158 0 0 995 B
#6157 CallElasticsearchAsync net6.0 1.32μs 0.774ns 2.9ns 0.0132 0 0 952 B
#6157 CallElasticsearchAsync netcoreapp3.1 1.67μs 0.555ns 2.08ns 0.0142 0 0 1.02 KB
#6157 CallElasticsearchAsync net472 2.61μs 0.513ns 1.78ns 0.167 0 0 1.05 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.34μs 0.467ns 1.81ns 0.0134 0 0 952 B
master ExecuteAsync netcoreapp3.1 1.58μs 0.606ns 2.27ns 0.0126 0 0 952 B
master ExecuteAsync net472 1.75μs 0.676ns 2.62ns 0.145 0 0 915 B
#6157 ExecuteAsync net6.0 1.33μs 1.09ns 4.07ns 0.0134 0 0 952 B
#6157 ExecuteAsync netcoreapp3.1 1.52μs 0.743ns 2.88ns 0.013 0 0 952 B
#6157 ExecuteAsync net472 1.75μs 0.547ns 2.05ns 0.145 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #6157

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net6.0 2.22 KB 2.31 KB 88 B 3.96%
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑netcoreapp3.1 2.76 KB 2.85 KB 88 B 3.19%
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 3.07 KB 3.12 KB 49 B 1.60%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 4.15μs 2.43ns 9.1ns 0.031 0 0 2.22 KB
master SendAsync netcoreapp3.1 5.17μs 3.02ns 11.7ns 0.0362 0 0 2.76 KB
master SendAsync net472 7.2μs 2.05ns 7.95ns 0.486 0 0 3.07 KB
#6157 SendAsync net6.0 4.39μs 2.78ns 10.4ns 0.0329 0 0 2.31 KB
#6157 SendAsync netcoreapp3.1 5.31μs 2.04ns 7.37ns 0.0372 0 0 2.85 KB
#6157 SendAsync net472 7.36μs 2.34ns 9.08ns 0.494 0 0 3.12 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.52μs 0.828ns 3.1ns 0.0229 0 0 1.64 KB
master EnrichedLog netcoreapp3.1 2.23μs 1ns 3.76ns 0.0224 0 0 1.64 KB
master EnrichedLog net472 2.57μs 1ns 3.75ns 0.249 0 0 1.57 KB
#6157 EnrichedLog net6.0 1.55μs 1.01ns 3.92ns 0.0233 0 0 1.64 KB
#6157 EnrichedLog netcoreapp3.1 2.34μs 1.24ns 4.31ns 0.0221 0 0 1.64 KB
#6157 EnrichedLog net472 2.58μs 2.17ns 7.51ns 0.249 0 0 1.57 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 116μs 267ns 1.04μs 0.0573 0 0 4.28 KB
master EnrichedLog netcoreapp3.1 121μs 206ns 799ns 0 0 0 4.28 KB
master EnrichedLog net472 152μs 209ns 811ns 0.681 0.227 0 4.46 KB
#6157 EnrichedLog net6.0 117μs 434ns 1.68μs 0 0 0 4.28 KB
#6157 EnrichedLog netcoreapp3.1 124μs 237ns 854ns 0.0622 0 0 4.28 KB
#6157 EnrichedLog net472 153μs 214ns 743ns 0.688 0.229 0 4.46 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.14μs 0.991ns 3.84ns 0.0298 0 0 2.2 KB
master EnrichedLog netcoreapp3.1 4.12μs 1.39ns 5.2ns 0.0292 0 0 2.2 KB
master EnrichedLog net472 4.84μs 0.87ns 3.37ns 0.319 0 0 2.02 KB
#6157 EnrichedLog net6.0 3.07μs 1.03ns 4.01ns 0.0308 0 0 2.2 KB
#6157 EnrichedLog netcoreapp3.1 4.27μs 1.16ns 4.47ns 0.0281 0 0 2.2 KB
#6157 EnrichedLog net472 4.7μs 0.943ns 3.65ns 0.321 0 0 2.02 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.05ns 4.06ns 0.0162 0 0 1.14 KB
master SendReceive netcoreapp3.1 1.68μs 1.36ns 5.28ns 0.0156 0 0 1.14 KB
master SendReceive net472 2.13μs 5.19ns 20.1ns 0.183 0 0 1.16 KB
#6157 SendReceive net6.0 1.32μs 0.735ns 2.75ns 0.0158 0 0 1.14 KB
#6157 SendReceive netcoreapp3.1 1.74μs 0.904ns 3.26ns 0.0155 0 0 1.14 KB
#6157 SendReceive net472 2.12μs 1.27ns 4.93ns 0.183 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.7μs 0.668ns 2.59ns 0.0215 0 0 1.6 KB
master EnrichedLog netcoreapp3.1 3.95μs 2.14ns 7.4ns 0.0218 0 0 1.65 KB
master EnrichedLog net472 4.49μs 3.45ns 13.4ns 0.323 0 0 2.04 KB
#6157 EnrichedLog net6.0 2.63μs 0.837ns 3.13ns 0.0224 0 0 1.6 KB
#6157 EnrichedLog netcoreapp3.1 3.88μs 1.53ns 5.94ns 0.0212 0 0 1.65 KB
#6157 EnrichedLog net472 4.38μs 1.39ns 5.19ns 0.323 0 0 2.04 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 409ns 0.119ns 0.462ns 0.00802 0 0 576 B
master StartFinishSpan netcoreapp3.1 640ns 0.468ns 1.69ns 0.0078 0 0 576 B
master StartFinishSpan net472 685ns 0.272ns 1.05ns 0.0915 0 0 578 B
master StartFinishScope net6.0 484ns 0.133ns 0.514ns 0.00974 0 0 696 B
master StartFinishScope netcoreapp3.1 675ns 1.26ns 4.88ns 0.00944 0 0 696 B
master StartFinishScope net472 872ns 0.775ns 3ns 0.105 0 0 658 B
#6157 StartFinishSpan net6.0 406ns 0.141ns 0.547ns 0.00819 0 0 576 B
#6157 StartFinishSpan netcoreapp3.1 581ns 3.13ns 16.9ns 0.00794 0 0 576 B
#6157 StartFinishSpan net472 700ns 0.588ns 2.28ns 0.0916 0 0 578 B
#6157 StartFinishScope net6.0 480ns 0.953ns 3.69ns 0.00969 0 0 696 B
#6157 StartFinishScope netcoreapp3.1 682ns 1.24ns 4.8ns 0.00953 0 0 696 B
#6157 StartFinishScope net472 931ns 1.41ns 5.48ns 0.104 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 644ns 0.279ns 1.08ns 0.00974 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 983ns 0.62ns 2.4ns 0.00934 0 0 696 B
master RunOnMethodBegin net472 1.17μs 0.278ns 1.08ns 0.104 0 0 658 B
#6157 RunOnMethodBegin net6.0 617ns 0.314ns 1.22ns 0.00965 0 0 696 B
#6157 RunOnMethodBegin netcoreapp3.1 957ns 0.461ns 1.79ns 0.00963 0 0 696 B
#6157 RunOnMethodBegin net472 1.16μs 4.22ns 16.4ns 0.104 0 0 658 B

andrewlock avatar Oct 18 '24 23:10 andrewlock

Merge activity

  • Nov 1, 9:50 AM EDT: A user merged this pull request with Graphite.

lucaspimentel avatar Nov 01 '24 13:11 lucaspimentel