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

Implement the SpanSampler into the Tracer

Open bouwkast opened this issue 3 years ago • 14 comments

Summary of changes

This pull request adds the SpanSampler into the Tracer to support the Single Span Ingestion feature.

Reason for change

To allow for individual Spans that were going to be dropped to be sampled independently of their host Trace.

Implementation details

This adds the ISpanSampler interface and SpanSampler implementation that will sample a Span within TraceContext.CloseSpan when its containing trace is being dropped due to having a priority <= 0.

Test coverage

  • Added unit tests for the SpanSampler -> SpanSamplerTests
  • Added some integration tests for testing the TraceContext.CloseSpan in a new class SpanTagTests to check whether the spans get tagged correctly

Other details

Previous PRs:

  • [x] https://github.com/DataDog/dd-trace-dotnet/pull/3282
  • [x] https://github.com/DataDog/dd-trace-dotnet/pull/3283

bouwkast avatar Sep 30 '22 15:09 bouwkast

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 803μs 499ns 1.93μs 0.398 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 517μs 268ns 1μs 0 0 0 2.62 KB
#3286 WriteAndFlushEnrichedTraces net472 795μs 626ns 2.42μs 0.398 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 541μs 136ns 526ns 0 0 0 2.62 KB
Benchmarks.Trace.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 net472 198ns 0.204ns 0.763ns 0.0726 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 252ns 0.155ns 0.601ns 0.00624 0 0 456 B
master AllCycleMoreComplexBody net472 193ns 0.0415ns 0.15ns 0.0689 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 257ns 0.0963ns 0.347ns 0.00588 0 0 432 B
master BodyExtractorSimpleBody net472 275ns 0.192ns 0.692ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 242ns 0.087ns 0.325ns 0.00365 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.6μs 12ns 46.6ns 1.21 0.0155 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 13μs 3.49ns 13ns 0.0906 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 196ns 0.062ns 0.232ns 0.0726 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 252ns 0.159ns 0.615ns 0.0063 0 0 456 B
#3286 AllCycleMoreComplexBody net472 193ns 0.0376ns 0.13ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 254ns 0.199ns 0.716ns 0.00587 0 0 432 B
#3286 BodyExtractorSimpleBody net472 306ns 0.348ns 1.35ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 244ns 0.114ns 0.425ns 0.00365 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 15.6μs 8.3ns 31ns 1.21 0.0156 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13.1μs 5.01ns 18.8ns 0.0919 0 0 6.75 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 net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 182μs 188ns 729ns 0.27 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 178μs 188ns 727ns 0.266 0 0 20.68 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 net472 1.81μs 0.404ns 1.46ns 0.155 0.000909 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.41μs 0.504ns 1.89ns 0.0127 0 0 968 B
#3286 ExecuteNonQuery net472 1.95μs 0.49ns 1.83ns 0.156 0.000972 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.45μs 0.973ns 3.64ns 0.0129 0 0 968 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 net472 2.43μs 1.69ns 6.33ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.53μs 0.704ns 2.63ns 0.0153 0 0 1.13 KB
master CallElasticsearchAsync net472 2.74μs 1.42ns 5.51ns 0.209 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.62μs 0.6ns 2.25ns 0.0171 0 0 1.25 KB
#3286 CallElasticsearch net472 2.51μs 0.573ns 2.22ns 0.189 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.49μs 0.72ns 2.79ns 0.0156 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.74μs 1.1ns 4.24ns 0.21 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.64μs 0.533ns 1.99ns 0.0172 0 0 1.25 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 net472 2.91μs 1.52ns 5.67ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.78μs 0.77ns 2.88ns 0.0187 0 0 1.38 KB
#3286 ExecuteAsync net472 2.76μs 1.95ns 7.56ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.71μs 0.829ns 3.21ns 0.0189 0 0 1.38 KB
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 net472 5.88μs 1.73ns 6.72ns 0.444 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.75μs 1.17ns 4.23ns 0.0356 0 0 2.63 KB
#3286 SendAsync net472 5.92μs 4.12ns 16ns 0.445 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.68μs 1.89ns 7.3ns 0.0345 0 0 2.63 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 net472 3.14μs 1.23ns 4.42ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.51μs 1.01ns 3.79ns 0.0264 0 0 1.91 KB
#3286 EnrichedLog net472 3.17μs 2.59ns 10ns 0.298 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.5μs 1.01ns 3.76ns 0.0263 0 0 1.91 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 net472 152μs 119ns 463ns 0.679 0.226 0 4.72 KB
master EnrichedLog netcoreapp3.1 117μs 208ns 807ns 0.0591 0 0 4.55 KB
#3286 EnrichedLog net472 151μs 173ns 672ns 0.678 0.226 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 117μs 259ns 969ns 0.0585 0 0 4.55 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 net472 5.81μs 2.72ns 10.5ns 0.58 0.0029 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.36μs 0.712ns 2.46ns 0.0547 0 0 3.98 KB
#3286 EnrichedLog net472 5.88μs 3.92ns 14.7ns 0.58 0.00293 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.38μs 2.42ns 9.04ns 0.0546 0 0 3.98 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 net472 2.21μs 3.19ns 12.4ns 0.222 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.81μs 4.15ns 16.1ns 0.0178 0 0 1.35 KB
#3286 SendReceive net472 2.4μs 1.66ns 6.42ns 0.223 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.82μs 0.607ns 2.19ns 0.0181 0 0 1.35 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 net472 5.18μs 1.71ns 6.17ns 0.364 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.45μs 0.835ns 3.01ns 0.0244 0 0 1.86 KB
#3286 EnrichedLog net472 5.08μs 2.21ns 8.55ns 0.364 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.39μs 0.948ns 3.42ns 0.0241 0 0 1.86 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 net472 1.16μs 0.396ns 1.53ns 0.133 0 0 842 B
master StartFinishSpan netcoreapp3.1 943ns 0.93ns 3.6ns 0.0103 0 0 792 B
master StartFinishScope net472 1.43μs 0.539ns 2.09ns 0.147 0 0 923 B
master StartFinishScope netcoreapp3.1 1.13μs 0.529ns 2.05ns 0.0124 0 0 912 B
#3286 StartFinishSpan net472 1.2μs 0.295ns 1.14ns 0.133 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 942ns 0.503ns 1.88ns 0.0108 0 0 792 B
#3286 StartFinishScope net472 1.4μs 0.62ns 2.4ns 0.147 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.03μs 1.29ns 4.65ns 0.0124 0 0 912 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 net472 1.49μs 0.233ns 0.808ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.13μs 0.974ns 3.64ns 0.0124 0 0 912 B
#3286 RunOnMethodBegin net472 1.52μs 0.473ns 1.77ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.17μs 0.32ns 1.15ns 0.0122 0 0 912 B

andrewlock avatar Oct 11 '22 13:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 790μs 502ns 1.94μs 0.396 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 525μs 125ns 484ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 792μs 522ns 2.02μs 0.393 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 543μs 144ns 537ns 0 0 0 2.62 KB
Benchmarks.Trace.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 net472 198ns 0.277ns 1.21ns 0.0727 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 256ns 0.189ns 0.706ns 0.00632 0 0 456 B
master AllCycleMoreComplexBody net472 208ns 0.116ns 0.436ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 254ns 0.223ns 0.865ns 0.00598 0 0 432 B
master BodyExtractorSimpleBody net472 293ns 0.208ns 0.805ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 230ns 0.0689ns 0.267ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.7μs 12.1ns 47ns 1.21 0.0156 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 13.1μs 4.57ns 17.1ns 0.0912 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 197ns 0.0718ns 0.259ns 0.0726 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 254ns 0.184ns 0.712ns 0.00626 0 0 456 B
#3286 AllCycleMoreComplexBody net472 195ns 0.117ns 0.436ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 250ns 0.208ns 0.804ns 0.00591 0 0 432 B
#3286 BodyExtractorSimpleBody net472 280ns 0.317ns 1.23ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 234ns 0.0745ns 0.279ns 0.00364 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 15.9μs 8.93ns 34.6ns 1.21 0.0159 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13μs 5.44ns 21.1ns 0.0905 0 0 6.75 KB
Benchmarks.Trace.AspNetCoreBenchmark - Unknown :shrug: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 180μs 208ns 807ns 0.271 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 182μs 242ns 938ns 0.271 0 0 20.68 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 net472 1.81μs 1.09ns 4.23ns 0.155 0.00091 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.39μs 0.731ns 2.74ns 0.0132 0 0 968 B
#3286 ExecuteNonQuery net472 1.91μs 0.294ns 1.14ns 0.155 0.000955 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.45μs 0.559ns 2.16ns 0.0132 0 0 968 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 net472 2.44μs 0.6ns 2.24ns 0.189 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.5μs 0.752ns 2.81ns 0.0151 0 0 1.13 KB
master CallElasticsearchAsync net472 2.75μs 3.57ns 13.8ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.59μs 1.41ns 5.26ns 0.0166 0 0 1.25 KB
#3286 CallElasticsearch net472 2.61μs 0.783ns 3.03ns 0.189 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.51μs 0.383ns 1.38ns 0.015 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.68μs 1.07ns 4.16ns 0.209 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.62μs 1.25ns 4.32ns 0.0171 0 0 1.25 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 net472 2.82μs 1.01ns 3.78ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.75μs 0.496ns 1.92ns 0.0185 0 0 1.38 KB
#3286 ExecuteAsync net472 2.75μs 1.63ns 6.12ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.73μs 0.592ns 2.21ns 0.0182 0 0 1.38 KB
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 net472 5.92μs 1.57ns 5.87ns 0.444 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.75μs 1.58ns 5.69ns 0.0357 0 0 2.63 KB
#3286 SendAsync net472 5.97μs 2.56ns 9.59ns 0.443 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.72μs 1.26ns 4.87ns 0.0352 0 0 2.63 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 net472 3.26μs 2.1ns 7.87ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.52μs 1.17ns 4.4ns 0.0267 0 0 1.91 KB
#3286 EnrichedLog net472 3.16μs 4.21ns 16.3ns 0.297 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.48μs 2.05ns 7.95ns 0.0261 0 0 1.91 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 net472 153μs 156ns 604ns 0.694 0.231 0 4.72 KB
master EnrichedLog netcoreapp3.1 118μs 239ns 925ns 0.0591 0 0 4.55 KB
#3286 EnrichedLog net472 153μs 151ns 584ns 0.687 0.229 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 117μs 264ns 1.02μs 0.0592 0 0 4.55 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 net472 5.77μs 1.99ns 7.45ns 0.58 0.00281 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.72μs 2.21ns 7.95ns 0.0542 0 0 3.98 KB
#3286 EnrichedLog net472 5.88μs 2.52ns 9.76ns 0.579 0.00293 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.45μs 1.35ns 4.66ns 0.0535 0 0 3.98 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 net472 2.29μs 2.45ns 9.49ns 0.223 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.79μs 2.01ns 7.54ns 0.018 0 0 1.35 KB
#3286 SendReceive net472 2.35μs 2.55ns 9.56ns 0.223 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.79μs 0.722ns 2.7ns 0.0188 0 0 1.35 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 net472 5.2μs 1.99ns 7.72ns 0.363 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.3μs 2ns 7.74ns 0.0237 0 0 1.86 KB
#3286 EnrichedLog net472 5.08μs 1.34ns 5.17ns 0.363 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.31μs 1.42ns 5.3ns 0.0258 0 0 1.86 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 net472 1.15μs 0.271ns 1.01ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 942ns 0.418ns 1.62ns 0.0109 0 0 792 B
master StartFinishScope net472 1.39μs 0.6ns 2.24ns 0.147 0 0 923 B
master StartFinishScope netcoreapp3.1 1.06μs 0.717ns 2.78ns 0.0122 0 0 912 B
#3286 StartFinishSpan net472 1.16μs 0.489ns 1.83ns 0.134 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 935ns 0.142ns 0.513ns 0.0107 0 0 792 B
#3286 StartFinishScope net472 1.43μs 0.581ns 2.09ns 0.147 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.11μs 0.394ns 1.48ns 0.0122 0 0 912 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 net472 1.54μs 0.414ns 1.49ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.17μs 0.474ns 1.71ns 0.0123 0 0 912 B
#3286 RunOnMethodBegin net472 1.48μs 0.741ns 2.87ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.2μs 0.386ns 1.44ns 0.012 0 0 912 B

andrewlock avatar Oct 11 '22 16:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 790μs 502ns 1.94μs 0.396 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 525μs 125ns 484ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 793μs 675ns 2.52μs 0.396 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 532μs 304ns 1.18μs 0 0 0 2.62 KB
Benchmarks.Trace.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 net472 198ns 0.277ns 1.21ns 0.0727 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 256ns 0.189ns 0.706ns 0.00632 0 0 456 B
master AllCycleMoreComplexBody net472 208ns 0.116ns 0.436ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 254ns 0.223ns 0.865ns 0.00598 0 0 432 B
master BodyExtractorSimpleBody net472 293ns 0.208ns 0.805ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 230ns 0.0689ns 0.267ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.7μs 12.1ns 47ns 1.21 0.0156 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 13.1μs 4.57ns 17.1ns 0.0912 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 197ns 0.0566ns 0.196ns 0.0726 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 254ns 0.201ns 0.777ns 0.00628 0 0 456 B
#3286 AllCycleMoreComplexBody net472 195ns 0.0855ns 0.32ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 257ns 0.124ns 0.479ns 0.00591 0 0 432 B
#3286 BodyExtractorSimpleBody net472 274ns 0.153ns 0.571ns 0.0574 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 237ns 0.0806ns 0.301ns 0.00368 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 15.6μs 15.9ns 61.7ns 1.2 0.0155 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 4.16ns 16.1ns 0.0889 0 0 6.75 KB
Benchmarks.Trace.AspNetCoreBenchmark - Unknown :shrug: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 180μs 208ns 807ns 0.271 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 179μs 201ns 778ns 0.268 0 0 20.68 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 net472 1.81μs 1.09ns 4.23ns 0.155 0.00091 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.39μs 0.731ns 2.74ns 0.0132 0 0 968 B
#3286 ExecuteNonQuery net472 1.92μs 0.847ns 3.28ns 0.155 0.000956 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.42μs 0.684ns 2.56ns 0.0129 0 0 968 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 net472 2.44μs 0.6ns 2.24ns 0.189 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.5μs 0.752ns 2.81ns 0.0151 0 0 1.13 KB
master CallElasticsearchAsync net472 2.75μs 3.57ns 13.8ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.59μs 1.41ns 5.26ns 0.0166 0 0 1.25 KB
#3286 CallElasticsearch net472 2.43μs 0.565ns 2.04ns 0.188 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.57μs 0.712ns 2.67ns 0.015 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.57μs 0.974ns 3.64ns 0.21 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.63μs 0.736ns 2.85ns 0.0171 0 0 1.25 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 net472 2.82μs 1.01ns 3.78ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.75μs 0.496ns 1.92ns 0.0185 0 0 1.38 KB
#3286 ExecuteAsync net472 2.71μs 1.66ns 6ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.73μs 0.591ns 2.05ns 0.0182 0 0 1.38 KB
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 net472 5.92μs 1.57ns 5.87ns 0.444 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.75μs 1.58ns 5.69ns 0.0357 0 0 2.63 KB
#3286 SendAsync net472 5.91μs 1.6ns 6.21ns 0.443 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.73μs 1.4ns 5.41ns 0.0356 0 0 2.63 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 net472 3.26μs 2.1ns 7.87ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.52μs 1.17ns 4.4ns 0.0267 0 0 1.91 KB
#3286 EnrichedLog net472 3.23μs 5.03ns 19.5ns 0.297 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.6μs 1.73ns 6.48ns 0.0259 0 0 1.91 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 net472 153μs 156ns 604ns 0.694 0.231 0 4.72 KB
master EnrichedLog netcoreapp3.1 118μs 239ns 925ns 0.0591 0 0 4.55 KB
#3286 EnrichedLog net472 151μs 121ns 453ns 0.677 0.226 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 118μs 166ns 641ns 0 0 0 4.55 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 net472 5.77μs 1.99ns 7.45ns 0.58 0.00281 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.72μs 2.21ns 7.95ns 0.0542 0 0 3.98 KB
#3286 EnrichedLog net472 5.79μs 2.84ns 10.6ns 0.578 0.00289 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.47μs 5.41ns 20.3ns 0.0532 0 0 3.98 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 net472 2.29μs 2.45ns 9.49ns 0.223 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.79μs 2.01ns 7.54ns 0.018 0 0 1.35 KB
#3286 SendReceive net472 2.32μs 1.91ns 7.41ns 0.222 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.81μs 1.03ns 3.98ns 0.0185 0 0 1.35 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 net472 5.2μs 1.99ns 7.72ns 0.363 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.3μs 2ns 7.74ns 0.0237 0 0 1.86 KB
#3286 EnrichedLog net472 4.94μs 1.75ns 6.56ns 0.365 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.35μs 1.56ns 5.85ns 0.0239 0 0 1.86 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 net472 1.15μs 0.271ns 1.01ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 942ns 0.418ns 1.62ns 0.0109 0 0 792 B
master StartFinishScope net472 1.39μs 0.6ns 2.24ns 0.147 0 0 923 B
master StartFinishScope netcoreapp3.1 1.06μs 0.717ns 2.78ns 0.0122 0 0 912 B
#3286 StartFinishSpan net472 1.23μs 0.682ns 2.64ns 0.133 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 955ns 0.326ns 1.22ns 0.011 0 0 792 B
#3286 StartFinishScope net472 1.46μs 0.564ns 2.18ns 0.147 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.07μs 0.461ns 1.78ns 0.0123 0 0 912 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 net472 1.54μs 0.414ns 1.49ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.17μs 0.474ns 1.71ns 0.0123 0 0 912 B
#3286 RunOnMethodBegin net472 1.5μs 0.494ns 1.91ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.16μs 0.385ns 1.49ns 0.0122 0 0 912 B

andrewlock avatar Oct 11 '22 19:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.142
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 783μs 477ns 1.79μs 0.388 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 529μs 265ns 954ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 793μs 489ns 1.89μs 0.396 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 553μs 142ns 512ns 0 0 0 2.62 KB
Benchmarks.Trace.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 net472 197ns 0.0653ns 0.235ns 0.0726 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 256ns 0.214ns 0.827ns 0.00615 0 0 456 B
master AllCycleMoreComplexBody net472 198ns 0.0828ns 0.299ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 250ns 0.281ns 1.09ns 0.00591 0 0 432 B
master BodyExtractorSimpleBody net472 276ns 0.166ns 0.62ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 231ns 0.202ns 0.782ns 0.00365 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.6μs 21.8ns 84.4ns 1.21 0.0155 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 4.82ns 18.1ns 0.0895 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 199ns 0.0929ns 0.36ns 0.0727 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 254ns 0.239ns 0.927ns 0.00623 0 0 456 B
#3286 AllCycleMoreComplexBody net472 196ns 0.0549ns 0.198ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 252ns 0.411ns 1.59ns 0.00595 0 0 432 B
#3286 BodyExtractorSimpleBody net472 269ns 0.255ns 0.953ns 0.0574 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 235ns 0.132ns 0.512ns 0.00365 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 15.8μs 19.3ns 74.8ns 1.21 0.0158 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13.1μs 5.8ns 21.7ns 0.0916 0 0 6.75 KB
Benchmarks.Trace.AspNetCoreBenchmark - Unknown :shrug: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 179μs 129ns 501ns 0.266 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 178μs 238ns 923ns 0.268 0 0 20.68 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 net472 1.93μs 0.726ns 2.81ns 0.155 0.000968 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.49μs 0.787ns 2.95ns 0.0127 0 0 968 B
#3286 ExecuteNonQuery net472 1.92μs 0.965ns 3.61ns 0.155 0.000956 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.44μs 1.55ns 5.35ns 0.0135 0 0 968 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 net472 2.61μs 1.07ns 4.14ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.56μs 0.611ns 2.37ns 0.0156 0 0 1.13 KB
master CallElasticsearchAsync net472 2.63μs 1.01ns 3.92ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.66μs 0.786ns 3.05ns 0.0166 0 0 1.25 KB
#3286 CallElasticsearch net472 2.41μs 0.642ns 2.4ns 0.188 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.61μs 1.04ns 4.01ns 0.0153 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.61μs 5.08ns 19.7ns 0.21 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.61μs 0.446ns 1.61ns 0.0169 0 0 1.25 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 net472 2.85μs 1.7ns 6.57ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.81μs 0.557ns 2.08ns 0.0189 0 0 1.38 KB
#3286 ExecuteAsync net472 2.84μs 1.09ns 4.08ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.73μs 0.585ns 2.19ns 0.0183 0 0 1.38 KB
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 net472 5.87μs 2.79ns 10.8ns 0.445 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.68μs 0.879ns 3.29ns 0.0349 0 0 2.63 KB
#3286 SendAsync net472 5.89μs 1.65ns 6.16ns 0.445 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.61μs 2.68ns 10ns 0.036 0 0 2.63 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 net472 3.17μs 1.05ns 3.63ns 0.297 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.63μs 0.746ns 2.69ns 0.0262 0 0 1.91 KB
#3286 EnrichedLog net472 3.32μs 3.56ns 13.8ns 0.298 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.58μs 2.82ns 10.9ns 0.0259 0 0 1.91 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 net472 149μs 121ns 470ns 0.743 0.223 0 4.72 KB
master EnrichedLog netcoreapp3.1 118μs 290ns 1.12μs 0.0586 0 0 4.55 KB
#3286 EnrichedLog net472 154μs 139ns 519ns 0.699 0.233 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 119μs 250ns 968ns 0.0594 0 0 4.55 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 net472 5.9μs 1.83ns 7.1ns 0.579 0.00294 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.43μs 1.67ns 5.78ns 0.0535 0 0 3.98 KB
#3286 EnrichedLog net472 5.85μs 2.91ns 11.3ns 0.58 0.00293 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.45μs 1.21ns 4.2ns 0.0533 0 0 3.98 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 net472 2.35μs 1.31ns 4.73ns 0.223 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.72μs 0.611ns 2.37ns 0.0181 0 0 1.35 KB
#3286 SendReceive net472 2.26μs 2.31ns 8.94ns 0.222 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.81μs 1.47ns 5.5ns 0.0181 0 0 1.35 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 net472 5.02μs 2.39ns 9.25ns 0.364 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.32μs 2.65ns 10.3ns 0.0237 0 0 1.86 KB
#3286 EnrichedLog net472 4.96μs 2.3ns 8.91ns 0.363 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.17μs 1.28ns 4.61ns 0.025 0 0 1.86 KB
Benchmarks.Trace.SpanBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3286

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 1.149 1,132.62 1,301.39

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 1.13μs 0.522ns 2.02ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 938ns 0.282ns 1.09ns 0.0106 0 0 792 B
master StartFinishScope net472 1.38μs 0.241ns 0.9ns 0.146 0 0 923 B
master StartFinishScope netcoreapp3.1 1.12μs 1.01ns 3.78ns 0.0123 0 0 912 B
#3286 StartFinishSpan net472 1.3μs 0.54ns 2.02ns 0.134 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 931ns 0.365ns 1.41ns 0.0106 0 0 792 B
#3286 StartFinishScope net472 1.4μs 0.323ns 1.21ns 0.146 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.09μs 0.38ns 1.37ns 0.0125 0 0 912 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3286

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 1.136 1,411.84 1,603.37

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net472 1.41μs 0.373ns 1.45ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.12μs 0.306ns 1.19ns 0.0124 0 0 912 B
#3286 RunOnMethodBegin net472 1.6μs 0.349ns 1.21ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.19μs 0.291ns 1.05ns 0.0124 0 0 912 B

andrewlock avatar Oct 12 '22 13:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 790μs 591ns 2.29μs 0.396 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 538μs 224ns 808ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 785μs 680ns 2.64μs 0.393 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 535μs 217ns 814ns 0 0 0 2.63 KB
Benchmarks.Trace.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 net472 197ns 0.0724ns 0.28ns 0.0726 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 254ns 0.193ns 0.749ns 0.00625 0 0 456 B
master AllCycleMoreComplexBody net472 196ns 0.0741ns 0.277ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 250ns 0.335ns 1.3ns 0.00592 0 0 432 B
master BodyExtractorSimpleBody net472 273ns 0.125ns 0.449ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 240ns 0.243ns 0.909ns 0.00374 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.8μs 16.2ns 62.9ns 1.2 0.0157 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.8μs 5.76ns 21.5ns 0.0891 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 198ns 0.106ns 0.41ns 0.0726 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 254ns 0.179ns 0.671ns 0.00637 0 0 456 B
#3286 AllCycleMoreComplexBody net472 197ns 0.0628ns 0.226ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 250ns 0.442ns 1.71ns 0.00587 0 0 432 B
#3286 BodyExtractorSimpleBody net472 297ns 0.19ns 0.712ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 236ns 0.13ns 0.505ns 0.00379 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 16.1μs 15.8ns 59ns 1.21 0.016 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13μs 4.56ns 17.1ns 0.0906 0 0 6.75 KB
Benchmarks.Trace.AspNetCoreBenchmark - Unknown :shrug: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 181μs 402ns 1.56μs 0.269 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 181μs 156ns 605ns 0.181 0 0 20.68 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 net472 1.8μs 1.15ns 4.32ns 0.155 0.000892 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.39μs 0.546ns 2.11ns 0.0132 0 0 968 B
#3286 ExecuteNonQuery net472 1.92μs 0.584ns 2.18ns 0.155 0.000962 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.49μs 0.429ns 1.61ns 0.0126 0 0 968 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 net472 2.48μs 0.903ns 3.5ns 0.189 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.65μs 0.747ns 2.8ns 0.0149 0 0 1.13 KB
master CallElasticsearchAsync net472 2.55μs 1.04ns 3.74ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.66μs 0.502ns 1.81ns 0.0166 0 0 1.25 KB
#3286 CallElasticsearch net472 2.41μs 2.47ns 9.58ns 0.189 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.55μs 0.75ns 2.71ns 0.0156 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.73μs 1.21ns 4.69ns 0.209 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.67μs 0.613ns 2.3ns 0.0168 0 0 1.25 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 net472 2.71μs 1.8ns 6.74ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.75μs 0.249ns 0.933ns 0.0181 0 0 1.38 KB
#3286 ExecuteAsync net472 2.78μs 1.66ns 6.21ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.83μs 1.05ns 3.94ns 0.0182 0 0 1.38 KB
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 net472 5.8μs 1.89ns 7.06ns 0.443 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.64μs 1ns 3.75ns 0.0346 0 0 2.63 KB
#3286 SendAsync net472 5.91μs 2.34ns 8.76ns 0.443 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.67μs 0.85ns 3.18ns 0.0367 0 0 2.63 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 net472 3.22μs 4.25ns 16.5ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.58μs 1.14ns 4.27ns 0.0259 0 0 1.91 KB
#3286 EnrichedLog net472 3.35μs 3.41ns 13.2ns 0.297 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.44μs 1.51ns 5.65ns 0.0257 0 0 1.91 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 net472 150μs 278ns 1.08μs 0.679 0.226 0 4.72 KB
master EnrichedLog netcoreapp3.1 118μs 206ns 741ns 0 0 0 4.55 KB
#3286 EnrichedLog net472 154μs 228ns 885ns 0.688 0.229 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 116μs 105ns 394ns 0.0578 0 0 4.55 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 net472 5.81μs 2.08ns 7.5ns 0.579 0.00291 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.44μs 1.77ns 6.84ns 0.0533 0 0 3.98 KB
#3286 EnrichedLog net472 5.8μs 1.7ns 6.35ns 0.579 0.00289 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.58μs 1.79ns 6.47ns 0.0528 0 0 3.98 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 net472 2.29μs 2.52ns 9.74ns 0.223 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.79μs 1.14ns 4.27ns 0.0179 0 0 1.35 KB
#3286 SendReceive net472 2.34μs 2.42ns 9.39ns 0.222 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.83μs 0.876ns 3.28ns 0.0183 0 0 1.35 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 net472 5.11μs 2.61ns 9.77ns 0.364 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.28μs 1.4ns 5.24ns 0.0256 0 0 1.86 KB
#3286 EnrichedLog net472 5.1μs 10ns 36.1ns 0.363 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.27μs 22.2ns 175ns 0.0232 0 0 1.86 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 net472 1.17μs 0.58ns 2.25ns 0.133 0 0 842 B
master StartFinishSpan netcoreapp3.1 973ns 0.434ns 1.68ns 0.0106 0 0 792 B
master StartFinishScope net472 1.46μs 1.12ns 4.36ns 0.146 0 0 923 B
master StartFinishScope netcoreapp3.1 1.09μs 0.473ns 1.77ns 0.0125 0 0 912 B
#3286 StartFinishSpan net472 1.15μs 0.597ns 2.31ns 0.133 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 1.01μs 0.342ns 1.28ns 0.0108 0 0 792 B
#3286 StartFinishScope net472 1.42μs 0.419ns 1.62ns 0.146 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.2μs 0.738ns 2.76ns 0.0126 0 0 912 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 net472 1.47μs 0.451ns 1.75ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.22μs 0.455ns 1.57ns 0.0123 0 0 912 B
#3286 RunOnMethodBegin net472 1.51μs 0.385ns 1.44ns 0.147 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.13μs 0.379ns 1.42ns 0.0125 0 0 912 B

andrewlock avatar Oct 12 '22 15:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 798μs 454ns 1.64μs 0.393 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 534μs 226ns 846ns 0 0 0 2.62 KB
#3286 WriteAndFlushEnrichedTraces net472 798μs 608ns 2.35μs 0.396 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 546μs 444ns 1.66μs 0 0 0 2.62 KB
Benchmarks.Trace.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 net472 196ns 0.0691ns 0.249ns 0.0727 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 254ns 0.0646ns 0.242ns 0.00632 0 0 456 B
master AllCycleMoreComplexBody net472 194ns 0.102ns 0.353ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 251ns 0.134ns 0.518ns 0.00592 0 0 432 B
master BodyExtractorSimpleBody net472 271ns 0.223ns 0.865ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 235ns 0.0611ns 0.22ns 0.0038 0 0 272 B
master BodyExtractorMoreComplexBody net472 16.1μs 15.3ns 59.1ns 1.2 0.0161 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 13.1μs 3.57ns 13.8ns 0.0918 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 197ns 0.0485ns 0.181ns 0.0727 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 255ns 0.262ns 1.02ns 0.00639 0 0 456 B
#3286 AllCycleMoreComplexBody net472 195ns 0.106ns 0.398ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 250ns 0.226ns 0.845ns 0.00599 0 0 432 B
#3286 BodyExtractorSimpleBody net472 277ns 0.128ns 0.48ns 0.0574 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 238ns 0.182ns 0.682ns 0.00371 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 16.3μs 16.6ns 62ns 1.21 0.0162 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 1.93ns 6.96ns 0.0891 0 0 6.75 KB
Benchmarks.Trace.AspNetCoreBenchmark - Unknown :shrug: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 183μs 251ns 970ns 0.184 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 181μs 205ns 793ns 0.271 0 0 20.68 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 net472 1.8μs 1.21ns 4.67ns 0.155 0.000936 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.48μs 1.23ns 4.43ns 0.0134 0 0 968 B
#3286 ExecuteNonQuery net472 1.88μs 0.648ns 2.34ns 0.155 0.000942 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.45μs 0.644ns 2.23ns 0.013 0 0 968 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 net472 2.51μs 0.988ns 3.7ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.62μs 1.16ns 4.35ns 0.0153 0 0 1.13 KB
master CallElasticsearchAsync net472 2.74μs 0.925ns 3.58ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.61μs 0.891ns 3.09ns 0.0169 0 0 1.25 KB
#3286 CallElasticsearch net472 2.55μs 0.993ns 3.85ns 0.188 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.57μs 0.551ns 2.06ns 0.0153 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.76μs 0.491ns 1.84ns 0.21 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.57μs 0.427ns 1.48ns 0.0166 0 0 1.25 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 net472 2.66μs 1.71ns 6.39ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.79μs 0.453ns 1.63ns 0.0188 0 0 1.38 KB
#3286 ExecuteAsync net472 2.68μs 1.56ns 6.06ns 0.231 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.77μs 0.63ns 2.44ns 0.0186 0 0 1.38 KB
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 net472 6.01μs 1.96ns 7.08ns 0.443 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.71μs 0.801ns 2.89ns 0.0354 0 0 2.63 KB
#3286 SendAsync net472 5.84μs 2.53ns 9.12ns 0.444 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.69μs 1.39ns 5.19ns 0.0349 0 0 2.63 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 net472 3.2μs 1.72ns 6.64ns 0.297 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.53μs 1.4ns 4.86ns 0.0252 0 0 1.91 KB
#3286 EnrichedLog net472 3.22μs 7.28ns 28.2ns 0.297 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.67μs 3.14ns 11.7ns 0.0261 0 0 1.91 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 net472 151μs 94.7ns 367ns 0.686 0.229 0 4.72 KB
master EnrichedLog netcoreapp3.1 120μs 313ns 1.17μs 0 0 0 4.55 KB
#3286 EnrichedLog net472 152μs 176ns 658ns 0.689 0.23 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 119μs 129ns 483ns 0.0589 0 0 4.55 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 net472 5.86μs 2.32ns 8.99ns 0.579 0.00292 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.7μs 1.39ns 5.22ns 0.0534 0 0 3.98 KB
#3286 EnrichedLog net472 5.78μs 2.03ns 7.88ns 0.579 0.00291 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.68μs 1.8ns 6.74ns 0.0536 0 0 3.98 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 net472 2.26μs 1.86ns 7.21ns 0.222 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.83μs 3.8ns 13.7ns 0.0182 0 0 1.35 KB
#3286 SendReceive net472 2.31μs 3.74ns 14.5ns 0.222 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.84μs 0.582ns 2.18ns 0.0185 0 0 1.35 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 net472 5.21μs 2.33ns 9.04ns 0.363 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.26μs 1.43ns 5.35ns 0.0236 0 0 1.86 KB
#3286 EnrichedLog net472 5.14μs 1.93ns 7.48ns 0.364 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.34μs 1.06ns 3.96ns 0.0239 0 0 1.86 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 net472 1.1μs 0.344ns 1.29ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 972ns 0.271ns 1.05ns 0.0107 0 0 792 B
master StartFinishScope net472 1.34μs 0.393ns 1.47ns 0.146 0 0 923 B
master StartFinishScope netcoreapp3.1 1.09μs 0.451ns 1.69ns 0.0125 0 0 912 B
#3286 StartFinishSpan net472 1.22μs 0.958ns 3.71ns 0.134 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 930ns 0.295ns 1.07ns 0.0107 0 0 792 B
#3286 StartFinishScope net472 1.42μs 0.391ns 1.51ns 0.147 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.11μs 0.333ns 1.25ns 0.0123 0 0 912 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 net472 1.48μs 0.626ns 2.34ns 0.147 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.16μs 1.12ns 4.03ns 0.0122 0 0 912 B
#3286 RunOnMethodBegin net472 1.5μs 0.371ns 1.39ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.2μs 0.343ns 1.23ns 0.0126 0 0 912 B

andrewlock avatar Oct 13 '22 13:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 784μs 331ns 1.28μs 0.393 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 536μs 205ns 739ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 787μs 602ns 2.33μs 0.391 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 541μs 194ns 753ns 0 0 0 2.63 KB
Benchmarks.Trace.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 net472 196ns 0.0741ns 0.277ns 0.0726 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 254ns 0.0941ns 0.339ns 0.00627 0 0 456 B
master AllCycleMoreComplexBody net472 197ns 0.108ns 0.42ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 255ns 0.121ns 0.452ns 0.00592 0 0 432 B
master BodyExtractorSimpleBody net472 294ns 0.39ns 1.46ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 222ns 0.162ns 0.584ns 0.00371 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.7μs 14.7ns 57ns 1.21 0.0158 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 13.1μs 6.05ns 22.6ns 0.0911 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 196ns 0.0631ns 0.244ns 0.0727 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 253ns 0.127ns 0.477ns 0.00622 0 0 456 B
#3286 AllCycleMoreComplexBody net472 194ns 0.119ns 0.444ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 253ns 0.156ns 0.605ns 0.00594 0 0 432 B
#3286 BodyExtractorSimpleBody net472 276ns 0.35ns 1.36ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 228ns 0.0943ns 0.365ns 0.00368 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 16.5μs 13.5ns 52.3ns 1.21 0.0164 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13μs 4.21ns 16.3ns 0.091 0 0 6.75 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 net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 180μs 315ns 1.22μs 0.269 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 182μs 259ns 1μs 0.181 0 0 20.68 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 net472 1.9μs 0.45ns 1.74ns 0.155 0.000948 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.4μs 0.546ns 2.04ns 0.0134 0 0 968 B
#3286 ExecuteNonQuery net472 1.82μs 0.471ns 1.82ns 0.155 0.000908 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.45μs 0.41ns 1.48ns 0.0131 0 0 968 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 net472 2.53μs 0.757ns 2.83ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.56μs 1.12ns 4.2ns 0.0153 0 0 1.13 KB
master CallElasticsearchAsync net472 2.68μs 0.861ns 3.22ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.7μs 0.493ns 1.78ns 0.0169 0 0 1.25 KB
#3286 CallElasticsearch net472 2.59μs 0.752ns 2.91ns 0.188 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.6μs 0.463ns 1.79ns 0.0152 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.69μs 0.546ns 2.04ns 0.21 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.63μs 0.634ns 2.46ns 0.0171 0 0 1.25 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 net472 2.71μs 1.03ns 3.71ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.78μs 1.26ns 4.9ns 0.0187 0 0 1.38 KB
#3286 ExecuteAsync net472 2.88μs 1.41ns 5.48ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.75μs 0.557ns 2.01ns 0.0184 0 0 1.38 KB
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 net472 5.87μs 2.25ns 8.43ns 0.443 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.71μs 1.41ns 5.28ns 0.0353 0 0 2.63 KB
#3286 SendAsync net472 5.91μs 2.19ns 8.46ns 0.445 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.68μs 2.28ns 8.83ns 0.0351 0 0 2.63 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 net472 3.25μs 2.45ns 9.47ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.51μs 2.14ns 7.99ns 0.0262 0 0 1.91 KB
#3286 EnrichedLog net472 3.37μs 2.63ns 9.85ns 0.297 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.57μs 1.12ns 4.03ns 0.0258 0 0 1.91 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 net472 152μs 136ns 528ns 0.691 0.23 0 4.72 KB
master EnrichedLog netcoreapp3.1 122μs 145ns 561ns 0.0606 0 0 4.55 KB
#3286 EnrichedLog net472 151μs 60.5ns 226ns 0.682 0.227 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 119μs 149ns 578ns 0.0597 0 0 4.55 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 net472 5.78μs 3.18ns 11.9ns 0.578 0.00289 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.45μs 2.65ns 9.57ns 0.0534 0 0 3.98 KB
#3286 EnrichedLog net472 5.89μs 2.49ns 9.66ns 0.578 0.00294 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.46μs 1.59ns 5.96ns 0.0535 0 0 3.98 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 net472 2.42μs 2.77ns 10.7ns 0.222 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.85μs 1.47ns 5.7ns 0.0184 0 0 1.35 KB
#3286 SendReceive net472 2.29μs 3.34ns 12.9ns 0.223 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.8μs 0.591ns 2.21ns 0.018 0 0 1.35 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 net472 5.12μs 3.29ns 12.7ns 0.363 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.39μs 5.25ns 19.7ns 0.0242 0 0 1.86 KB
#3286 EnrichedLog net472 5.14μs 1.74ns 6.5ns 0.363 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.37μs 1.85ns 6.92ns 0.0238 0 0 1.86 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 net472 1.18μs 0.279ns 1.08ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 924ns 0.284ns 1.03ns 0.0107 0 0 792 B
master StartFinishScope net472 1.42μs 0.28ns 1.05ns 0.147 0 0 923 B
master StartFinishScope netcoreapp3.1 1.09μs 0.438ns 1.64ns 0.0121 0 0 912 B
#3286 StartFinishSpan net472 1.19μs 0.5ns 1.94ns 0.133 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 996ns 0.318ns 1.19ns 0.0105 0 0 792 B
#3286 StartFinishScope net472 1.45μs 0.805ns 3.12ns 0.146 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.09μs 0.521ns 2.02ns 0.012 0 0 912 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 net472 1.61μs 0.602ns 2.33ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.2μs 0.41ns 1.59ns 0.0126 0 0 912 B
#3286 RunOnMethodBegin net472 1.47μs 0.701ns 2.53ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.15μs 0.638ns 2.39ns 0.012 0 0 912 B

andrewlock avatar Oct 13 '22 17:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 784μs 331ns 1.28μs 0.393 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 536μs 205ns 739ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 777μs 501ns 1.94μs 0.386 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 524μs 170ns 634ns 0 0 0 2.63 KB
Benchmarks.Trace.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 net472 196ns 0.0741ns 0.277ns 0.0726 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 254ns 0.0941ns 0.339ns 0.00627 0 0 456 B
master AllCycleMoreComplexBody net472 197ns 0.108ns 0.42ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 255ns 0.121ns 0.452ns 0.00592 0 0 432 B
master BodyExtractorSimpleBody net472 294ns 0.39ns 1.46ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 222ns 0.162ns 0.584ns 0.00371 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.7μs 14.7ns 57ns 1.21 0.0158 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 13.1μs 6.05ns 22.6ns 0.0911 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 197ns 0.0585ns 0.219ns 0.0727 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 256ns 0.134ns 0.503ns 0.00618 0 0 456 B
#3286 AllCycleMoreComplexBody net472 200ns 0.109ns 0.407ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 264ns 1.06ns 4.09ns 0.00601 0 0 432 B
#3286 BodyExtractorSimpleBody net472 274ns 0.214ns 0.831ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 245ns 0.133ns 0.497ns 0.00367 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 16.2μs 6.53ns 23.5ns 1.21 0.016 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13.8μs 4.7ns 17.6ns 0.0896 0 0 6.75 KB
Benchmarks.Trace.AspNetCoreBenchmark - Unknown :shrug: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 180μs 315ns 1.22μs 0.269 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 181μs 311ns 1.16μs 0.269 0 0 20.68 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 net472 1.9μs 0.45ns 1.74ns 0.155 0.000948 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.4μs 0.546ns 2.04ns 0.0134 0 0 968 B
#3286 ExecuteNonQuery net472 1.75μs 0.613ns 2.37ns 0.155 0.000874 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.4μs 0.284ns 1.06ns 0.0132 0 0 968 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 net472 2.53μs 0.757ns 2.83ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.56μs 1.12ns 4.2ns 0.0153 0 0 1.13 KB
master CallElasticsearchAsync net472 2.68μs 0.861ns 3.22ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.7μs 0.493ns 1.78ns 0.0169 0 0 1.25 KB
#3286 CallElasticsearch net472 2.66μs 3.21ns 12.4ns 0.189 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.53μs 0.631ns 2.36ns 0.0153 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.68μs 1.26ns 4.89ns 0.21 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.64μs 0.411ns 1.42ns 0.0173 0 0 1.25 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 net472 2.71μs 1.03ns 3.71ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.78μs 1.26ns 4.9ns 0.0187 0 0 1.38 KB
#3286 ExecuteAsync net472 2.78μs 1.37ns 5.32ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.72μs 0.579ns 2.24ns 0.0182 0 0 1.38 KB
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 net472 5.87μs 2.25ns 8.43ns 0.443 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.71μs 1.41ns 5.28ns 0.0353 0 0 2.63 KB
#3286 SendAsync net472 5.97μs 2.25ns 8.4ns 0.445 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.72μs 0.788ns 2.84ns 0.035 0 0 2.63 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 net472 3.25μs 2.45ns 9.47ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.51μs 2.14ns 7.99ns 0.0262 0 0 1.91 KB
#3286 EnrichedLog net472 3.28μs 1.96ns 7.05ns 0.298 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.53μs 1.49ns 5.59ns 0.0253 0 0 1.91 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 net472 152μs 136ns 528ns 0.691 0.23 0 4.72 KB
master EnrichedLog netcoreapp3.1 122μs 145ns 561ns 0.0606 0 0 4.55 KB
#3286 EnrichedLog net472 151μs 83.8ns 302ns 0.679 0.226 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 121μs 161ns 623ns 0.0596 0 0 4.55 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 net472 5.78μs 3.18ns 11.9ns 0.578 0.00289 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.45μs 2.65ns 9.57ns 0.0534 0 0 3.98 KB
#3286 EnrichedLog net472 5.82μs 2.5ns 9.7ns 0.579 0.00291 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.77μs 2.62ns 10.2ns 0.0543 0 0 3.98 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 net472 2.42μs 2.77ns 10.7ns 0.222 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.85μs 1.47ns 5.7ns 0.0184 0 0 1.35 KB
#3286 SendReceive net472 2.34μs 1.2ns 4.48ns 0.222 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.74μs 2.86ns 11.1ns 0.0183 0 0 1.35 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 net472 5.12μs 3.29ns 12.7ns 0.363 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.39μs 5.25ns 19.7ns 0.0242 0 0 1.86 KB
#3286 EnrichedLog net472 5.06μs 2.25ns 8.41ns 0.363 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.18μs 2.03ns 7.61ns 0.0251 0 0 1.86 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 net472 1.18μs 0.279ns 1.08ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 924ns 0.284ns 1.03ns 0.0107 0 0 792 B
master StartFinishScope net472 1.42μs 0.28ns 1.05ns 0.147 0 0 923 B
master StartFinishScope netcoreapp3.1 1.09μs 0.438ns 1.64ns 0.0121 0 0 912 B
#3286 StartFinishSpan net472 1.23μs 0.373ns 1.39ns 0.133 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 919ns 0.251ns 0.871ns 0.011 0 0 792 B
#3286 StartFinishScope net472 1.41μs 1.02ns 3.96ns 0.146 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.14μs 0.859ns 3.1ns 0.0125 0 0 912 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 net472 1.61μs 0.602ns 2.33ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.2μs 0.41ns 1.59ns 0.0126 0 0 912 B
#3286 RunOnMethodBegin net472 1.47μs 0.551ns 2.06ns 0.147 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.15μs 1.28ns 4.96ns 0.012 0 0 912 B

andrewlock avatar Oct 13 '22 20:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 802μs 703ns 2.72μs 0.398 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 540μs 245ns 947ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 787μs 486ns 1.82μs 0.388 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 535μs 115ns 400ns 0 0 0 2.62 KB
Benchmarks.Trace.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 net472 197ns 0.109ns 0.408ns 0.0726 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 254ns 0.106ns 0.397ns 0.00624 0 0 456 B
master AllCycleMoreComplexBody net472 195ns 0.0922ns 0.333ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 256ns 0.29ns 1.12ns 0.0059 0 0 432 B
master BodyExtractorSimpleBody net472 270ns 0.152ns 0.588ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 247ns 0.124ns 0.449ns 0.00372 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.9μs 8.78ns 32.9ns 1.2 0.0157 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.9μs 6.78ns 25.4ns 0.0902 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 196ns 0.0471ns 0.17ns 0.0726 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 254ns 0.488ns 1.89ns 0.00629 0 0 456 B
#3286 AllCycleMoreComplexBody net472 197ns 0.0665ns 0.249ns 0.0689 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 255ns 0.161ns 0.622ns 0.006 0 0 432 B
#3286 BodyExtractorSimpleBody net472 295ns 0.174ns 0.674ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 227ns 0.111ns 0.414ns 0.00367 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 16.1μs 11.5ns 41.6ns 1.21 0.0161 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 6.27ns 23.5ns 0.0883 0 0 6.75 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 net472 0.0266ns 0.0124ns 0.0568ns 0 0 0 0 b
master SendRequest netcoreapp3.1 182μs 222ns 859ns 0.272 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 182μs 177ns 662ns 0.183 0 0 20.68 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 net472 1.84μs 1.11ns 4.32ns 0.155 0.000923 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.43μs 0.535ns 2ns 0.0132 0 0 968 B
#3286 ExecuteNonQuery net472 1.86μs 0.548ns 1.98ns 0.155 0.000921 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.43μs 0.894ns 3.1ns 0.0129 0 0 968 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 net472 2.55μs 0.61ns 2.28ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.52μs 0.551ns 1.99ns 0.0153 0 0 1.13 KB
master CallElasticsearchAsync net472 2.69μs 2.15ns 8.34ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.54μs 0.689ns 2.58ns 0.0162 0 0 1.25 KB
#3286 CallElasticsearch net472 2.54μs 1.66ns 6.44ns 0.188 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.57μs 0.761ns 2.75ns 0.0149 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.76μs 1.62ns 6.05ns 0.209 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.63μs 1.52ns 5.9ns 0.0172 0 0 1.25 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 net472 2.57μs 0.676ns 2.53ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.73μs 0.616ns 2.39ns 0.0191 0 0 1.38 KB
#3286 ExecuteAsync net472 2.61μs 1.47ns 5.51ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.75μs 1.18ns 4.58ns 0.0183 0 0 1.38 KB
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 net472 5.88μs 2.24ns 8.38ns 0.442 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.65μs 1.71ns 6.41ns 0.0347 0 0 2.63 KB
#3286 SendAsync net472 5.86μs 2.74ns 10.6ns 0.443 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.59μs 1.05ns 4.06ns 0.0358 0 0 2.63 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 net472 3.08μs 1.29ns 4.65ns 0.297 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.61μs 2ns 7.47ns 0.0259 0 0 1.91 KB
#3286 EnrichedLog net472 3.34μs 3.68ns 13.8ns 0.297 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.52μs 2.04ns 7.64ns 0.0257 0 0 1.91 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 net472 151μs 135ns 522ns 0.681 0.227 0 4.72 KB
master EnrichedLog netcoreapp3.1 123μs 187ns 675ns 0 0 0 4.55 KB
#3286 EnrichedLog net472 151μs 222ns 861ns 0.678 0.226 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 120μs 105ns 408ns 0.0591 0 0 4.55 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 net472 5.77μs 2.27ns 8.5ns 0.578 0.00288 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.48μs 2.55ns 9.53ns 0.0539 0 0 3.98 KB
#3286 EnrichedLog net472 5.85μs 2.37ns 8.87ns 0.579 0.00294 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.6μs 1.07ns 3.99ns 0.0529 0 0 3.98 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 net472 2.34μs 1.45ns 5.64ns 0.223 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.83μs 0.791ns 3.06ns 0.0183 0 0 1.35 KB
#3286 SendReceive net472 2.26μs 2.11ns 7.9ns 0.223 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.85μs 1.1ns 3.82ns 0.018 0 0 1.35 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 net472 5.04μs 2.01ns 7.77ns 0.363 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.29μs 3.86ns 15ns 0.024 0 0 1.86 KB
#3286 EnrichedLog net472 5.06μs 7.64ns 27.5ns 0.364 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.25μs 1.67ns 6.02ns 0.0233 0 0 1.86 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 net472 1.16μs 0.429ns 1.66ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 959ns 0.345ns 1.29ns 0.0106 0 0 792 B
master StartFinishScope net472 1.39μs 0.723ns 2.61ns 0.146 0 0 923 B
master StartFinishScope netcoreapp3.1 1.07μs 0.287ns 1.04ns 0.0122 0 0 912 B
#3286 StartFinishSpan net472 1.2μs 0.333ns 1.29ns 0.134 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 954ns 0.621ns 2.41ns 0.0105 0 0 792 B
#3286 StartFinishScope net472 1.37μs 1.3ns 4.68ns 0.147 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.12μs 0.655ns 2.36ns 0.0123 0 0 912 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 net472 1.49μs 0.577ns 2.08ns 0.146 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.18μs 0.423ns 1.53ns 0.0119 0 0 912 B
#3286 RunOnMethodBegin net472 1.5μs 0.453ns 1.7ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.17μs 5.92ns 30.7ns 0.0121 0 0 912 B

andrewlock avatar Oct 14 '22 16:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.157
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 778μs 693ns 2.69μs 0.388 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 534μs 237ns 888ns 0 0 0 2.63 KB
#3286 WriteAndFlushEnrichedTraces net472 819μs 435ns 1.57μs 0.393 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 537μs 162ns 582ns 0 0 0 2.63 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3286

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.157 226.20 195.44

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 198ns 0.169ns 0.656ns 0.0727 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 268ns 0.139ns 0.537ns 0.00619 0 0 456 B
master AllCycleMoreComplexBody net472 226ns 0.318ns 1.19ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 253ns 0.133ns 0.499ns 0.00592 0 0 432 B
master BodyExtractorSimpleBody net472 276ns 0.317ns 1.23ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 245ns 0.147ns 0.55ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.6μs 8.36ns 30.2ns 1.21 0.0157 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.5μs 4.78ns 18.5ns 0.087 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 198ns 0.0939ns 0.351ns 0.0727 0 0 457 B
#3286 AllCycleSimpleBody netcoreapp3.1 254ns 0.515ns 1.99ns 0.00623 0 0 456 B
#3286 AllCycleMoreComplexBody net472 195ns 0.0524ns 0.189ns 0.0688 0 0 433 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 253ns 0.13ns 0.485ns 0.0059 0 0 432 B
#3286 BodyExtractorSimpleBody net472 275ns 0.165ns 0.616ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 240ns 0.121ns 0.454ns 0.00361 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 15.5μs 13.3ns 49.6ns 1.21 0.0157 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13μs 2.85ns 10.3ns 0.0909 0 0 6.75 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 net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 180μs 157ns 608ns 0.27 0 0 20.68 KB
#3286 SendRequest net472 0.0126ns 0.00814ns 0.0546ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 180μs 278ns 1.08μs 0.271 0 0 20.68 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 net472 1.85μs 0.917ns 3.18ns 0.155 0.000923 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.45μs 0.697ns 2.7ns 0.0131 0 0 968 B
#3286 ExecuteNonQuery net472 1.88μs 0.706ns 2.55ns 0.155 0.000905 0 979 B
#3286 ExecuteNonQuery netcoreapp3.1 1.46μs 0.629ns 2.44ns 0.0131 0 0 968 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 net472 2.61μs 0.936ns 3.5ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.54μs 0.646ns 2.42ns 0.0154 0 0 1.13 KB
master CallElasticsearchAsync net472 2.62μs 1.52ns 5.87ns 0.21 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.61μs 0.474ns 1.84ns 0.0169 0 0 1.25 KB
#3286 CallElasticsearch net472 2.55μs 0.801ns 2.89ns 0.188 0 0 1.19 KB
#3286 CallElasticsearch netcoreapp3.1 1.56μs 1.05ns 4.07ns 0.0156 0 0 1.13 KB
#3286 CallElasticsearchAsync net472 2.6μs 0.737ns 2.76ns 0.209 0 0 1.32 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.55μs 0.257ns 0.891ns 0.0171 0 0 1.25 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 net472 2.79μs 1.35ns 5.23ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.77μs 0.593ns 2.22ns 0.0186 0 0 1.38 KB
#3286 ExecuteAsync net472 2.71μs 1.17ns 4.2ns 0.23 0 0 1.45 KB
#3286 ExecuteAsync netcoreapp3.1 1.78μs 0.645ns 2.33ns 0.0188 0 0 1.38 KB
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 net472 5.87μs 1.86ns 6.98ns 0.443 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.62μs 2.54ns 9.51ns 0.0345 0 0 2.63 KB
#3286 SendAsync net472 6.04μs 1.93ns 7.46ns 0.443 0 0 2.8 KB
#3286 SendAsync netcoreapp3.1 3.68μs 1.44ns 5.4ns 0.0353 0 0 2.63 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 net472 3.1μs 4ns 15.5ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.47μs 1.13ns 4.39ns 0.0259 0 0 1.91 KB
#3286 EnrichedLog net472 3.21μs 3.44ns 12.9ns 0.297 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.68μs 0.765ns 2.86ns 0.0267 0 0 1.91 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 net472 152μs 141ns 547ns 0.678 0.226 0 4.72 KB
master EnrichedLog netcoreapp3.1 120μs 253ns 979ns 0.0603 0 0 4.55 KB
#3286 EnrichedLog net472 154μs 176ns 660ns 0.69 0.23 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 121μs 245ns 950ns 0.0605 0 0 4.55 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 net472 5.86μs 2.77ns 10.7ns 0.578 0.00292 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.46μs 8.48ns 32.8ns 0.0555 0 0 3.98 KB
#3286 EnrichedLog net472 5.88μs 1.47ns 5.31ns 0.578 0.00292 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.79μs 2.35ns 9.09ns 0.0524 0 0 3.98 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 net472 2.37μs 2.36ns 8.52ns 0.223 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.8μs 0.709ns 2.75ns 0.018 0 0 1.35 KB
#3286 SendReceive net472 2.37μs 1.69ns 6.54ns 0.223 0 0 1.4 KB
#3286 SendReceive netcoreapp3.1 1.9μs 0.743ns 2.78ns 0.018 0 0 1.35 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 net472 5.03μs 4.05ns 15.7ns 0.364 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.41μs 1.73ns 6.23ns 0.0242 0 0 1.86 KB
#3286 EnrichedLog net472 5.15μs 3.89ns 15.1ns 0.365 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.42μs 2.04ns 7.36ns 0.0241 0 0 1.86 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 net472 1.17μs 0.369ns 1.38ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 944ns 0.311ns 1.12ns 0.0108 0 0 792 B
master StartFinishScope net472 1.45μs 0.481ns 1.8ns 0.146 0 0 923 B
master StartFinishScope netcoreapp3.1 1.05μs 0.225ns 0.811ns 0.0121 0 0 912 B
#3286 StartFinishSpan net472 1.24μs 0.298ns 1.12ns 0.133 0 0 842 B
#3286 StartFinishSpan netcoreapp3.1 958ns 0.206ns 0.772ns 0.0106 0 0 792 B
#3286 StartFinishScope net472 1.41μs 0.337ns 1.26ns 0.146 0 0 923 B
#3286 StartFinishScope netcoreapp3.1 1.15μs 0.327ns 1.22ns 0.0121 0 0 912 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 net472 1.51μs 0.391ns 1.51ns 0.147 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.14μs 0.92ns 3.44ns 0.0124 0 0 912 B
#3286 RunOnMethodBegin net472 1.54μs 0.424ns 1.64ns 0.146 0 0 923 B
#3286 RunOnMethodBegin netcoreapp3.1 1.21μs 0.508ns 1.9ns 0.0127 0 0 912 B

andrewlock avatar Oct 14 '22 18:10 andrewlock

Code Coverage Report :bar_chart:

:warning: Merging #3286 into master will will decrease line coverage by 1% :warning: Merging #3286 into master will will decrease branch coverage by 1% :no_entry: Merging #3286 into master will will increase complexity by 24

master #3286 Change
Lines 19545 / 26971 19378 / 27002
Lines % 72% 72% -1% :warning:
Branches 11605 / 16770 11505 / 16792
Branches % 69% 69% -1% :warning:
Complexity 18142 18166 24 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :warning:

master #3286 Change
Lines % 72% 72% -1% :warning:
Branches % 69% 69% -1% :warning:
Complexity 18142 18166 24 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.Agent.TraceSamplers.AnalyticsEventsSampler -100% :no_entry: -100% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.ErrorSampler -100% :no_entry: -100% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.PrioritySampler -100% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Sampling.GlobalSamplingRule -100% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.RareSampler -89% :no_entry: -96% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Util.SamplingHelpers -50% :no_entry: -50% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Telemetry.Transports.JsonTelemetryTransport -33% :no_entry: -42% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Logging.DirectSubmission.DirectLogSubmissionManager -33% :no_entry: -33% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Logging.DirectSubmission.Sink.NullDatadogSink -25% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Processors.NormalizerTraceProcessor -22% :no_entry: -19% :no_entry: 0 :heavy_check_mark:
...And 6 more

The following classes were added in #3286:

File Line coverage Branch coverage Complexity
Datadog.Trace.Sampling.SpanSampler 100% 100% 13

View the full reports for further details:

andrewlock avatar Oct 14 '22 18:10 andrewlock

Code Coverage Report :bar_chart:

:warning: Merging #3286 into master will will decrease line coverage by 1% :warning: Merging #3286 into master will will decrease branch coverage by 1% :no_entry: Merging #3286 into master will will increase complexity by 18

master #3286 Change
Lines 19528 / 26976 19378 / 27002
Lines % 72% 72% -1% :warning:
Branches 11605 / 16776 11505 / 16792
Branches % 69% 69% -1% :warning:
Complexity 18148 18166 18 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :warning:

master #3286 Change
Lines % 72% 72% -1% :warning:
Branches % 69% 69% -1% :warning:
Complexity 18148 18166 18 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.Agent.TraceSamplers.AnalyticsEventsSampler -100% :no_entry: -100% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.ErrorSampler -100% :no_entry: -100% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.PrioritySampler -100% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Sampling.GlobalSamplingRule -100% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.RareSampler -89% :no_entry: -96% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Util.SamplingHelpers -50% :no_entry: -50% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Telemetry.Transports.JsonTelemetryTransport -33% :no_entry: -42% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Logging.DirectSubmission.DirectLogSubmissionManager -33% :no_entry: -33% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Logging.DirectSubmission.Sink.NullDatadogSink -25% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Processors.NormalizerTraceProcessor -22% :no_entry: -19% :no_entry: 0 :heavy_check_mark:
...And 7 more

The following classes were added in #3286:

File Line coverage Branch coverage Complexity
Datadog.Trace.Sampling.SpanSampler 100% 100% 13

View the full reports for further details:

andrewlock avatar Oct 14 '22 20:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • 4 benchmarks have fewer allocations
  • 18 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 783μs 600ns 2.25μs 0.391 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 526μs 567ns 2.2μs 0 0 0 2.62 KB
#3286 WriteAndFlushEnrichedTraces net472 808μs 829ns 3.21μs 0.398 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 584μs 332ns 1.24μs 0 0 0 2.63 KB
Benchmarks.Trace.AppSecBodyBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 457 B 441 B -16 B -3.50%
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑netcoreapp3.1 456 B 440 B -16 B -3.51%
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 433 B 417 B -16 B -3.70%
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑netcoreapp3.1 432 B 416 B -16 B -3.70%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 196ns 0.0626ns 0.242ns 0.0727 0 0 457 B
master AllCycleSimpleBody netcoreapp3.1 253ns 0.176ns 0.681ns 0.00623 0 0 456 B
master AllCycleMoreComplexBody net472 195ns 0.0647ns 0.242ns 0.0688 0 0 433 B
master AllCycleMoreComplexBody netcoreapp3.1 260ns 0.197ns 0.739ns 0.00597 0 0 432 B
master BodyExtractorSimpleBody net472 274ns 0.17ns 0.612ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 240ns 0.182ns 0.683ns 0.00378 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.5μs 12.8ns 47.9ns 1.21 0.0156 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 13.2μs 4.95ns 19.2ns 0.0922 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 196ns 0.162ns 0.583ns 0.0701 0 0 441 B
#3286 AllCycleSimpleBody netcoreapp3.1 255ns 0.158ns 0.61ns 0.00602 0 0 440 B
#3286 AllCycleMoreComplexBody net472 196ns 0.0758ns 0.273ns 0.0663 0 0 417 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 251ns 0.148ns 0.575ns 0.0057 0 0 416 B
#3286 BodyExtractorSimpleBody net472 274ns 0.239ns 0.893ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 240ns 0.107ns 0.4ns 0.00373 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 16μs 15.5ns 57.8ns 1.21 0.0157 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 12.8μs 3.79ns 14.7ns 0.09 0 0 6.75 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 net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 182μs 337ns 1.26μs 0.183 0 0 20.68 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 183μs 207ns 803ns 0.185 0 0 20.66 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 968 B 984 B 16 B 1.65%
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net472 979 B 995 B 16 B 1.63%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net472 1.82μs 1.38ns 5.33ns 0.155 0.000914 0 979 B
master ExecuteNonQuery netcoreapp3.1 1.43μs 0.593ns 2.22ns 0.0129 0 0 968 B
#3286 ExecuteNonQuery net472 1.76μs 0.502ns 1.81ns 0.158 0.000885 0 995 B
#3286 ExecuteNonQuery netcoreapp3.1 1.36μs 0.573ns 2.14ns 0.0129 0 0 984 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑netcoreapp3.1 1.13 KB 1.14 KB 16 B 1.42%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net472 1.19 KB 1.2 KB 16 B 1.35%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑netcoreapp3.1 1.25 KB 1.26 KB 16 B 1.28%
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑net472 1.32 KB 1.34 KB 16 B 1.21%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net472 2.55μs 0.573ns 2.07ns 0.188 0 0 1.19 KB
master CallElasticsearch netcoreapp3.1 1.52μs 0.712ns 2.66ns 0.0151 0 0 1.13 KB
master CallElasticsearchAsync net472 2.61μs 0.787ns 3.05ns 0.209 0 0 1.32 KB
master CallElasticsearchAsync netcoreapp3.1 1.59μs 0.425ns 1.53ns 0.0167 0 0 1.25 KB
#3286 CallElasticsearch net472 2.53μs 0.851ns 3.18ns 0.19 0 0 1.2 KB
#3286 CallElasticsearch netcoreapp3.1 1.5μs 0.81ns 3.14ns 0.0152 0 0 1.14 KB
#3286 CallElasticsearchAsync net472 2.68μs 0.847ns 3.05ns 0.213 0 0 1.34 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.54μs 0.571ns 2.06ns 0.0169 0 0 1.26 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑netcoreapp3.1 1.38 KB 1.39 KB 16 B 1.16%
Benchmarks.Trace.GraphQLBenchmark.ExecuteAsync‑net472 1.45 KB 1.47 KB 16 B 1.10%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.69μs 1.24ns 4.8ns 0.23 0 0 1.45 KB
master ExecuteAsync netcoreapp3.1 1.78μs 0.709ns 2.65ns 0.0187 0 0 1.38 KB
#3286 ExecuteAsync net472 2.68μs 0.91ns 3.53ns 0.233 0 0 1.47 KB
#3286 ExecuteAsync netcoreapp3.1 1.74μs 0.944ns 3.66ns 0.0192 0 0 1.39 KB
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑netcoreapp3.1 2.63 KB 2.65 KB 16 B 0.61%
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 2.8 KB 2.82 KB 16 B 0.57%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net472 5.84μs 2.45ns 9.49ns 0.444 0 0 2.8 KB
master SendAsync netcoreapp3.1 3.71μs 1.9ns 7.09ns 0.0351 0 0 2.63 KB
#3286 SendAsync net472 5.86μs 3.78ns 14.7ns 0.445 0 0 2.82 KB
#3286 SendAsync netcoreapp3.1 3.82μs 1.07ns 4.13ns 0.0362 0 0 2.65 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 net472 3.13μs 4.65ns 18ns 0.298 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.43μs 1.02ns 3.96ns 0.0256 0 0 1.91 KB
#3286 EnrichedLog net472 3.1μs 2.02ns 7.83ns 0.298 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.52μs 1.93ns 7.21ns 0.0264 0 0 1.91 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 net472 151μs 224ns 838ns 0.679 0.226 0 4.72 KB
master EnrichedLog netcoreapp3.1 120μs 167ns 647ns 0 0 0 4.55 KB
#3286 EnrichedLog net472 152μs 332ns 1.29μs 0.684 0.228 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 120μs 177ns 687ns 0.06 0 0 4.55 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 net472 5.87μs 2.77ns 10.4ns 0.58 0.00294 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.5μs 1.58ns 5.9ns 0.0542 0 0 3.98 KB
#3286 EnrichedLog net472 5.81μs 1.37ns 4.93ns 0.578 0.00288 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.48μs 1.81ns 6.51ns 0.0539 0 0 3.98 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.RedisBenchmark.SendReceive‑netcoreapp3.1 1.35 KB 1.37 KB 16 B 1.18%
Benchmarks.Trace.RedisBenchmark.SendReceive‑net472 1.4 KB 1.42 KB 16 B 1.14%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net472 2.35μs 1.6ns 6.18ns 0.222 0 0 1.4 KB
master SendReceive netcoreapp3.1 1.82μs 1.27ns 4.77ns 0.0183 0 0 1.35 KB
#3286 SendReceive net472 2.18μs 2.13ns 8.26ns 0.226 0 0 1.42 KB
#3286 SendReceive netcoreapp3.1 1.89μs 0.769ns 2.98ns 0.0179 0 0 1.37 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 net472 5.05μs 2.53ns 9.48ns 0.365 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.52μs 1.54ns 5.98ns 0.0248 0 0 1.86 KB
#3286 EnrichedLog net472 4.99μs 2.83ns 10.6ns 0.364 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.24μs 2.15ns 8.33ns 0.0253 0 0 1.86 KB
Benchmarks.Trace.SpanBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 792 B 808 B 16 B 2.02%
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑net472 842 B 859 B 17 B 2.02%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 912 B 928 B 16 B 1.75%
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 923 B 939 B 16 B 1.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 1.15μs 0.254ns 0.952ns 0.134 0 0 842 B
master StartFinishSpan netcoreapp3.1 930ns 0.329ns 1.14ns 0.0108 0 0 792 B
master StartFinishScope net472 1.41μs 0.442ns 1.71ns 0.146 0 0 923 B
master StartFinishScope netcoreapp3.1 1.05μs 0.278ns 1.04ns 0.0121 0 0 912 B
#3286 StartFinishSpan net472 1.17μs 0.981ns 3.8ns 0.136 0 0 859 B
#3286 StartFinishSpan netcoreapp3.1 1.02μs 0.367ns 1.42ns 0.0106 0 0 808 B
#3286 StartFinishScope net472 1.35μs 0.444ns 1.6ns 0.149 0 0 939 B
#3286 StartFinishScope netcoreapp3.1 1.08μs 1.31ns 5.08ns 0.0123 0 0 928 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3286

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 912 B 928 B 16 B 1.75%
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑net472 923 B 939 B 16 B 1.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net472 1.63μs 0.731ns 2.83ns 0.147 0 0 923 B
master RunOnMethodBegin netcoreapp3.1 1.13μs 0.552ns 2.14ns 0.0124 0 0 912 B
#3286 RunOnMethodBegin net472 1.54μs 0.762ns 2.95ns 0.149 0 0 939 B
#3286 RunOnMethodBegin netcoreapp3.1 1.2μs 2.81ns 10.5ns 0.013 0 0 928 B

andrewlock avatar Oct 14 '22 20:10 andrewlock

Code Coverage Report :bar_chart:

:heavy_check_mark: Merging #3286 into master will not change line coverage :warning: Merging #3286 into master will will decrease branch coverage by 1% :no_entry: Merging #3286 into master will will increase complexity by 8

master #3286 Change
Lines 19528 / 26976 19426 / 27013
Lines % 72% 72% 0% :heavy_check_mark:
Branches 11605 / 16776 11510 / 16780
Branches % 69% 69% -1% :warning:
Complexity 18148 18156 8 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :heavy_check_mark:

master #3286 Change
Lines % 72% 72% 0% :heavy_check_mark:
Branches % 69% 69% -1% :warning:
Complexity 18148 18156 8 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.Agent.TraceSamplers.AnalyticsEventsSampler -100% :no_entry: -100% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.ErrorSampler -100% :no_entry: -100% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.PrioritySampler -100% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Sampling.GlobalSamplingRule -100% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Agent.TraceSamplers.RareSampler -89% :no_entry: -96% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Util.SamplingHelpers -50% :no_entry: -50% :no_entry: -2 :heavy_check_mark:
Datadog.Trace.Telemetry.Transports.JsonTelemetryTransport -33% :no_entry: -42% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Logging.DirectSubmission.DirectLogSubmissionManager -33% :no_entry: -33% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.Logging.DirectSubmission.Sink.NullDatadogSink -25% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Processors.NormalizerTraceProcessor -22% :no_entry: -19% :no_entry: 0 :heavy_check_mark:
...And 7 more

The following classes were added in #3286:

File Line coverage Branch coverage Complexity
Datadog.Trace.Sampling.SpanSampler 100% 100% 13

View the full reports for further details:

andrewlock avatar Oct 14 '22 21:10 andrewlock

I tried running the benchmarks on master and they're the same as your PR, so I guess the difference comes from a commit you haven't merged into your branch.

kevingosse avatar Oct 18 '22 12:10 kevingosse

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 808μs 590ns 2.21μs 0.403 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 556μs 272ns 1.02μs 0 0 0 2.62 KB
#3286 WriteAndFlushEnrichedTraces net472 801μs 659ns 2.55μs 0.393 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 561μs 384ns 1.44μs 0 0 0 2.63 KB
Benchmarks.Trace.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 net472 197ns 0.0869ns 0.313ns 0.0701 9.85E-05 0 441 B
master AllCycleSimpleBody netcoreapp3.1 257ns 0.24ns 0.928ns 0.00605 0 0 440 B
master AllCycleMoreComplexBody net472 196ns 0.0453ns 0.17ns 0.0663 0 0 417 B
master AllCycleMoreComplexBody netcoreapp3.1 252ns 0.244ns 0.945ns 0.00567 0 0 416 B
master BodyExtractorSimpleBody net472 270ns 0.365ns 1.37ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 244ns 0.123ns 0.461ns 0.00368 0 0 272 B
master BodyExtractorMoreComplexBody net472 16.3μs 17.7ns 68.4ns 1.2 0.0163 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.9μs 6.84ns 26.5ns 0.0895 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 199ns 0.07ns 0.252ns 0.0701 9.95E-05 0 441 B
#3286 AllCycleSimpleBody netcoreapp3.1 253ns 0.403ns 1.56ns 0.00601 0 0 440 B
#3286 AllCycleMoreComplexBody net472 204ns 0.0795ns 0.287ns 0.0662 0 0 417 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 252ns 0.176ns 0.681ns 0.00566 0 0 416 B
#3286 BodyExtractorSimpleBody net472 270ns 0.189ns 0.731ns 0.0574 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 251ns 0.189ns 0.731ns 0.00369 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 16μs 18.5ns 69.2ns 1.21 0.0159 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 13μs 6.41ns 24ns 0.091 0 0 6.75 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 net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 184μs 186ns 720ns 0.274 0 0 20.66 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 181μs 319ns 1.24μs 0.272 0 0 20.66 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 net472 1.81μs 0.509ns 1.91ns 0.158 0.000903 0 995 B
master ExecuteNonQuery netcoreapp3.1 1.4μs 0.516ns 1.86ns 0.0133 0 0 984 B
#3286 ExecuteNonQuery net472 1.83μs 0.614ns 2.38ns 0.158 0.000913 0 995 B
#3286 ExecuteNonQuery netcoreapp3.1 1.45μs 0.369ns 1.28ns 0.013 0 0 984 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 net472 2.5μs 0.855ns 3.08ns 0.191 0 0 1.2 KB
master CallElasticsearch netcoreapp3.1 1.51μs 0.938ns 3.51ns 0.0158 0 0 1.14 KB
master CallElasticsearchAsync net472 2.63μs 0.441ns 1.59ns 0.212 0 0 1.34 KB
master CallElasticsearchAsync netcoreapp3.1 1.58μs 0.483ns 1.74ns 0.0173 0 0 1.26 KB
#3286 CallElasticsearch net472 2.56μs 0.683ns 2.56ns 0.191 0 0 1.2 KB
#3286 CallElasticsearch netcoreapp3.1 1.58μs 0.593ns 2.3ns 0.0158 0 0 1.14 KB
#3286 CallElasticsearchAsync net472 2.62μs 0.905ns 3.39ns 0.212 0 0 1.34 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.64μs 6.8ns 25.4ns 0.0171 0 0 1.26 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 net472 2.77μs 3.81ns 14.2ns 0.233 0 0 1.47 KB
master ExecuteAsync netcoreapp3.1 1.74μs 1.45ns 5.41ns 0.0184 0 0 1.39 KB
#3286 ExecuteAsync net472 2.65μs 1.3ns 5.05ns 0.233 0 0 1.47 KB
#3286 ExecuteAsync netcoreapp3.1 1.69μs 0.916ns 3.3ns 0.0185 0 0 1.39 KB
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 net472 5.96μs 1.27ns 4.77ns 0.446 0 0 2.82 KB
master SendAsync netcoreapp3.1 3.69μs 1.98ns 7.68ns 0.035 0 0 2.65 KB
#3286 SendAsync net472 5.89μs 2.58ns 10ns 0.447 0 0 2.82 KB
#3286 SendAsync netcoreapp3.1 3.87μs 1.95ns 7.31ns 0.0367 0 0 2.65 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 net472 3.23μs 4.46ns 16.1ns 0.297 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.51μs 1.84ns 6.9ns 0.0264 0 0 1.91 KB
#3286 EnrichedLog net472 3.15μs 3.79ns 14.7ns 0.298 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.54μs 1.81ns 6.78ns 0.0263 0 0 1.91 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 net472 151μs 170ns 657ns 0.679 0.226 0 4.72 KB
master EnrichedLog netcoreapp3.1 121μs 136ns 510ns 0.0597 0 0 4.55 KB
#3286 EnrichedLog net472 153μs 268ns 966ns 0.683 0.228 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 122μs 359ns 1.39μs 0.0602 0 0 4.55 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 net472 5.66μs 1.64ns 6.35ns 0.579 0.00284 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.42μs 1.63ns 6.09ns 0.053 0 0 3.98 KB
#3286 EnrichedLog net472 5.73μs 1.86ns 6.97ns 0.578 0.00286 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.5μs 1.35ns 5.06ns 0.055 0 0 3.98 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 net472 2.24μs 4.02ns 15.6ns 0.226 0 0 1.42 KB
master SendReceive netcoreapp3.1 1.84μs 0.668ns 2.59ns 0.0184 0 0 1.37 KB
#3286 SendReceive net472 2.33μs 2.19ns 8.48ns 0.225 0 0 1.42 KB
#3286 SendReceive netcoreapp3.1 1.85μs 0.68ns 2.54ns 0.0186 0 0 1.37 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 net472 4.92μs 3.09ns 12ns 0.365 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.34μs 2.07ns 7.45ns 0.0242 0 0 1.86 KB
#3286 EnrichedLog net472 5.05μs 1.76ns 6.82ns 0.363 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.2μs 2.56ns 9.9ns 0.0232 0 0 1.86 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 net472 1.18μs 0.48ns 1.8ns 0.136 0 0 859 B
master StartFinishSpan netcoreapp3.1 936ns 0.362ns 1.31ns 0.011 0 0 808 B
master StartFinishScope net472 1.42μs 0.462ns 1.73ns 0.149 0 0 939 B
master StartFinishScope netcoreapp3.1 1.04μs 0.754ns 2.92ns 0.0125 0 0 928 B
#3286 StartFinishSpan net472 1.22μs 0.958ns 3.45ns 0.136 0 0 859 B
#3286 StartFinishSpan netcoreapp3.1 936ns 0.29ns 1.13ns 0.0111 0 0 808 B
#3286 StartFinishScope net472 1.41μs 0.26ns 0.902ns 0.149 0 0 939 B
#3286 StartFinishScope netcoreapp3.1 1.13μs 2.16ns 8.1ns 0.0127 0 0 928 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 net472 1.44μs 0.546ns 2.12ns 0.149 0 0 939 B
master RunOnMethodBegin netcoreapp3.1 1.17μs 0.438ns 1.7ns 0.0122 0 0 928 B
#3286 RunOnMethodBegin net472 1.53μs 0.55ns 2.13ns 0.148 0 0 939 B
#3286 RunOnMethodBegin netcoreapp3.1 1.19μs 0.841ns 3.15ns 0.0124 0 0 928 B

andrewlock avatar Oct 18 '22 14:10 andrewlock

Benchmarks Report :snail:

Benchmarks for #3286 compared to master:

  • All benchmarks have the same speed
  • All benchmarks have the same allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :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 net472 808μs 590ns 2.21μs 0.403 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 556μs 272ns 1.02μs 0 0 0 2.62 KB
#3286 WriteAndFlushEnrichedTraces net472 795μs 797ns 2.98μs 0.393 0 0 3.22 KB
#3286 WriteAndFlushEnrichedTraces netcoreapp3.1 562μs 120ns 449ns 0 0 0 2.63 KB
Benchmarks.Trace.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 net472 197ns 0.0869ns 0.313ns 0.0701 9.85E-05 0 441 B
master AllCycleSimpleBody netcoreapp3.1 257ns 0.24ns 0.928ns 0.00605 0 0 440 B
master AllCycleMoreComplexBody net472 196ns 0.0453ns 0.17ns 0.0663 0 0 417 B
master AllCycleMoreComplexBody netcoreapp3.1 252ns 0.244ns 0.945ns 0.00567 0 0 416 B
master BodyExtractorSimpleBody net472 270ns 0.365ns 1.37ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 244ns 0.123ns 0.461ns 0.00368 0 0 272 B
master BodyExtractorMoreComplexBody net472 16.3μs 17.7ns 68.4ns 1.2 0.0163 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.9μs 6.84ns 26.5ns 0.0895 0 0 6.75 KB
#3286 AllCycleSimpleBody net472 198ns 0.142ns 0.532ns 0.0701 0 0 441 B
#3286 AllCycleSimpleBody netcoreapp3.1 252ns 0.315ns 1.22ns 0.00607 0 0 440 B
#3286 AllCycleMoreComplexBody net472 198ns 0.0701ns 0.253ns 0.0663 0 0 417 B
#3286 AllCycleMoreComplexBody netcoreapp3.1 252ns 0.197ns 0.762ns 0.00578 0 0 416 B
#3286 BodyExtractorSimpleBody net472 268ns 0.178ns 0.668ns 0.0573 0 0 361 B
#3286 BodyExtractorSimpleBody netcoreapp3.1 240ns 0.162ns 0.607ns 0.00373 0 0 272 B
#3286 BodyExtractorMoreComplexBody net472 15.7μs 14.9ns 57.6ns 1.21 0.0157 0 7.62 KB
#3286 BodyExtractorMoreComplexBody netcoreapp3.1 12.9μs 3.81ns 14.2ns 0.0901 0 0 6.75 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 net472 0ns 0ns 0ns 0 0 0 0 b
master SendRequest netcoreapp3.1 184μs 186ns 720ns 0.274 0 0 20.66 KB
#3286 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3286 SendRequest netcoreapp3.1 182μs 234ns 905ns 0.181 0 0 20.66 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 net472 1.81μs 0.509ns 1.91ns 0.158 0.000903 0 995 B
master ExecuteNonQuery netcoreapp3.1 1.4μs 0.516ns 1.86ns 0.0133 0 0 984 B
#3286 ExecuteNonQuery net472 1.83μs 0.671ns 2.6ns 0.158 0.000908 0 995 B
#3286 ExecuteNonQuery netcoreapp3.1 1.46μs 0.428ns 1.6ns 0.0131 0 0 984 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 net472 2.5μs 0.855ns 3.08ns 0.191 0 0 1.2 KB
master CallElasticsearch netcoreapp3.1 1.51μs 0.938ns 3.51ns 0.0158 0 0 1.14 KB
master CallElasticsearchAsync net472 2.63μs 0.441ns 1.59ns 0.212 0 0 1.34 KB
master CallElasticsearchAsync netcoreapp3.1 1.58μs 0.483ns 1.74ns 0.0173 0 0 1.26 KB
#3286 CallElasticsearch net472 2.57μs 0.609ns 2.36ns 0.191 0 0 1.2 KB
#3286 CallElasticsearch netcoreapp3.1 1.56μs 0.844ns 3.27ns 0.0156 0 0 1.14 KB
#3286 CallElasticsearchAsync net472 2.67μs 0.866ns 3.35ns 0.213 0 0 1.34 KB
#3286 CallElasticsearchAsync netcoreapp3.1 1.65μs 0.645ns 2.5ns 0.0165 0 0 1.26 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 net472 2.77μs 3.81ns 14.2ns 0.233 0 0 1.47 KB
master ExecuteAsync netcoreapp3.1 1.74μs 1.45ns 5.41ns 0.0184 0 0 1.39 KB
#3286 ExecuteAsync net472 2.74μs 1.16ns 4.48ns 0.233 0 0 1.47 KB
#3286 ExecuteAsync netcoreapp3.1 1.78μs 0.526ns 1.97ns 0.0187 0 0 1.39 KB
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 net472 5.96μs 1.27ns 4.77ns 0.446 0 0 2.82 KB
master SendAsync netcoreapp3.1 3.69μs 1.98ns 7.68ns 0.035 0 0 2.65 KB
#3286 SendAsync net472 5.76μs 2.45ns 9.18ns 0.445 0 0 2.82 KB
#3286 SendAsync netcoreapp3.1 3.77μs 1.09ns 4.09ns 0.0362 0 0 2.65 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 net472 3.23μs 4.46ns 16.1ns 0.297 0 0 1.88 KB
master EnrichedLog netcoreapp3.1 2.51μs 1.84ns 6.9ns 0.0264 0 0 1.91 KB
#3286 EnrichedLog net472 3.19μs 1.47ns 5.51ns 0.298 0 0 1.88 KB
#3286 EnrichedLog netcoreapp3.1 2.44μs 1.36ns 5.27ns 0.0255 0 0 1.91 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 net472 151μs 170ns 657ns 0.679 0.226 0 4.72 KB
master EnrichedLog netcoreapp3.1 121μs 136ns 510ns 0.0597 0 0 4.55 KB
#3286 EnrichedLog net472 152μs 232ns 899ns 0.685 0.228 0 4.72 KB
#3286 EnrichedLog netcoreapp3.1 121μs 206ns 771ns 0 0 0 4.55 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 net472 5.66μs 1.64ns 6.35ns 0.579 0.00284 0 3.65 KB
master EnrichedLog netcoreapp3.1 4.42μs 1.63ns 6.09ns 0.053 0 0 3.98 KB
#3286 EnrichedLog net472 5.93μs 1.67ns 6.01ns 0.58 0.00296 0 3.65 KB
#3286 EnrichedLog netcoreapp3.1 4.33μs 2.55ns 9.55ns 0.0541 0 0 3.98 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 net472 2.24μs 4.02ns 15.6ns 0.226 0 0 1.42 KB
master SendReceive netcoreapp3.1 1.84μs 0.668ns 2.59ns 0.0184 0 0 1.37 KB
#3286 SendReceive net472 2.4μs 2.24ns 8.67ns 0.226 0 0 1.42 KB
#3286 SendReceive netcoreapp3.1 1.85μs 0.973ns 3.77ns 0.0185 0 0 1.37 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 net472 4.92μs 3.09ns 12ns 0.365 0 0 2.3 KB
master EnrichedLog netcoreapp3.1 4.34μs 2.07ns 7.45ns 0.0242 0 0 1.86 KB
#3286 EnrichedLog net472 4.99μs 2ns 7.48ns 0.364 0 0 2.3 KB
#3286 EnrichedLog netcoreapp3.1 4.25μs 2.55ns 9.53ns 0.0253 0 0 1.86 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 net472 1.18μs 0.48ns 1.8ns 0.136 0 0 859 B
master StartFinishSpan netcoreapp3.1 936ns 0.362ns 1.31ns 0.011 0 0 808 B
master StartFinishScope net472 1.42μs 0.462ns 1.73ns 0.149 0 0 939 B
master StartFinishScope netcoreapp3.1 1.04μs 0.754ns 2.92ns 0.0125 0 0 928 B
#3286 StartFinishSpan net472 1.24μs 0.21ns 0.812ns 0.136 0 0 859 B
#3286 StartFinishSpan netcoreapp3.1 908ns 0.299ns 1.12ns 0.0109 0 0 808 B
#3286 StartFinishScope net472 1.4μs 0.513ns 1.78ns 0.149 0 0 939 B
#3286 StartFinishScope netcoreapp3.1 1.12μs 0.391ns 1.51ns 0.0122 0 0 928 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 net472 1.44μs 0.546ns 2.12ns 0.149 0 0 939 B
master RunOnMethodBegin netcoreapp3.1 1.17μs 0.438ns 1.7ns 0.0122 0 0 928 B
#3286 RunOnMethodBegin net472 1.54μs 0.768ns 2.97ns 0.149 0 0 939 B
#3286 RunOnMethodBegin netcoreapp3.1 1.13μs 0.463ns 1.67ns 0.0125 0 0 928 B

andrewlock avatar Oct 18 '22 15:10 andrewlock

Code Coverage Report :bar_chart:

:heavy_check_mark: Merging #3286 into master will not change line coverage :heavy_check_mark: Merging #3286 into master will not change branch coverage :no_entry: Merging #3286 into master will will increase complexity by 24

master #3286 Change
Lines 19602 / 27011 19681 / 27042
Lines % 73% 73% 0% :heavy_check_mark:
Branches 11633 / 16784 11675 / 16806
Branches % 69% 69% 0% :heavy_check_mark:
Complexity 18160 18184 24 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :heavy_check_mark:

master #3286 Change
Lines % 73% 73% 0% :heavy_check_mark:
Branches % 69% 69% 0% :heavy_check_mark:
Complexity 18160 18184 24 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.Iast.StackWalker 0% :heavy_check_mark: 6% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Debugger.PInvoke.DebuggerNativeMethods 6% :heavy_check_mark: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.DataStreamsMonitoring.Transport.DataStreamsApi 17% :heavy_check_mark: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Http.HttpClient.WinHttpHandler.WinHttpHandlerIntegration 100% :heavy_check_mark: 0% :heavy_check_mark: 0 :heavy_check_mark:

The following classes were added in #3286:

File Line coverage Branch coverage Complexity
Datadog.Trace.Sampling.SpanSampler 100% 100% 13

View the full reports for further details:

andrewlock avatar Oct 18 '22 16:10 andrewlock