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

[CI Visibility] Intelligent test runner

Open tonyredondo opened this issue 3 years ago • 1 comments

Summary of changes

Reason for change

Implementation details

Test coverage

Other details

tonyredondo avatar Aug 12 '22 13:08 tonyredondo

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.236
  • 1 benchmarks are slower, with geometric mean 1.114
  • 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 - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 1.141 527,143.46 461,970.60

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net472 792μs 4.32μs 24.4μs 0.391 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 529μs 3.02μs 22.6μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 735μs 493ns 1.91μs 0.365 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 462μs 169ns 632ns 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.114 204.95 228.37

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 205ns 0.137ns 0.493ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 234ns 0.27ns 1.05ns 0.00594 0 0 424 B
master AllCycleMoreComplexBody net472 182ns 0.151ns 0.566ns 0.0638 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 236ns 0.314ns 1.22ns 0.00542 0 0 400 B
master BodyExtractorSimpleBody net472 259ns 0.152ns 0.549ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 216ns 0.355ns 1.37ns 0.0038 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.2μs 9.8ns 37.9ns 1.21 0.0215 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.5μs 20.2ns 72.8ns 0.0933 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 228ns 0.242ns 0.937ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 234ns 0.253ns 0.948ns 0.00585 0 0 424 B
#3075 AllCycleMoreComplexBody net472 181ns 0.119ns 0.446ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 238ns 0.173ns 0.646ns 0.00548 0 0 400 B
#3075 BodyExtractorSimpleBody net472 259ns 0.184ns 0.689ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 237ns 0.232ns 0.869ns 0.00368 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.4μs 11.5ns 44.7ns 1.21 0.0214 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 15.2ns 58.7ns 0.092 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.0624ns 0.0151ns 0.0918ns 0 0 0 0 b
master SendRequest netcoreapp3.1 189μs 77.1ns 267ns 0.188 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 180μs 111ns 430ns 0.18 0 0 20.33 KB
Benchmarks.Trace.DbCommandBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 1.338 1,762.88 1,317.40 bimodal

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net472 1.69μs 9.36ns 54.6ns 0.126 0.000827 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.77μs 15.2ns 152ns 0.0112 0 0 824 B
#3075 ExecuteNonQuery net472 1.59μs 0.529ns 2.05ns 0.126 0.000792 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.32μs 0.536ns 2.01ns 0.0109 0 0 824 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.17μs 0.518ns 1.87ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.4μs 0.68ns 2.64ns 0.0131 0 0 984 B
master CallElasticsearchAsync net472 2.28μs 4.84ns 18.8ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.43μs 0.529ns 1.98ns 0.015 0 0 1.1 KB
#3075 CallElasticsearch net472 2.27μs 0.371ns 1.34ns 0.158 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.44μs 0.674ns 2.61ns 0.0129 0 0 984 B
#3075 CallElasticsearchAsync net472 2.42μs 0.851ns 3.3ns 0.18 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.43μs 0.454ns 1.7ns 0.0148 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.48μs 3.1ns 12ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.56μs 1.66ns 6.2ns 0.0163 0 0 1.22 KB
#3075 ExecuteAsync net472 2.44μs 3.16ns 11.4ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.58μs 0.63ns 2.44ns 0.0166 0 0 1.22 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.06μs 6.98ns 26.1ns 0.392 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.3μs 4.05ns 15.7ns 0.031 0 0 2.36 KB
#3075 SendAsync net472 5.08μs 5.54ns 20.7ns 0.393 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.17μs 2ns 7.47ns 0.0316 0 0 2.36 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 2.83μs 0.751ns 2.81ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.29μs 0.476ns 1.72ns 0.0231 0 0 1.73 KB
#3075 EnrichedLog net472 2.82μs 1.13ns 4.36ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.33μs 0.826ns 3.09ns 0.0233 0 0 1.73 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 77.9ns 302ns 0.675 0.225 0 4.5 KB
master EnrichedLog netcoreapp3.1 113μs 107ns 399ns 0.0566 0 0 4.38 KB
#3075 EnrichedLog net472 150μs 214ns 829ns 0.67 0.223 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 113μs 128ns 496ns 0.0565 0 0 4.38 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.62μs 8.3ns 32.1ns 0.545 0.00281 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.31μs 5.04ns 19.5ns 0.0514 0 0 3.8 KB
#3075 EnrichedLog net472 5.35μs 12.4ns 48.2ns 0.545 0.00268 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.27μs 5.91ns 22.9ns 0.052 0 0 3.8 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 1.99μs 1.03ns 4ns 0.193 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.73μs 0.707ns 2.65ns 0.0165 0 0 1.21 KB
#3075 SendReceive net472 1.96μs 0.59ns 2.21ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.7μs 0.523ns 1.96ns 0.0162 0 0 1.21 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.66μs 1.38ns 5.33ns 0.329 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.09μs 2ns 7.73ns 0.0226 0 0 1.69 KB
#3075 EnrichedLog net472 4.65μs 1.13ns 4.39ns 0.329 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.13μs 4.08ns 15.8ns 0.0229 0 0 1.69 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 832ns 0.252ns 0.944ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 776ns 1.78ns 6.88ns 0.00885 0 0 648 B
master StartFinishScope net472 1.01μs 0.27ns 1.05ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 930ns 0.337ns 1.26ns 0.0102 0 0 768 B
#3075 StartFinishSpan net472 853ns 0.293ns 1.13ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 746ns 0.421ns 1.52ns 0.00907 0 0 648 B
#3075 StartFinishScope net472 1.06μs 0.589ns 2.28ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 882ns 0.25ns 0.936ns 0.0105 0 0 768 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.22μs 0.858ns 3.32ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.01μs 0.329ns 1.19ns 0.0102 0 0 768 B
#3075 RunOnMethodBegin net472 1.28μs 0.312ns 1.21ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 1μs 0.225ns 0.844ns 0.0105 0 0 768 B

andrewlock avatar Aug 12 '22 14:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 736μs 419ns 1.62μs 0.361 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 460μs 182ns 657ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 726μs 299ns 1.16μs 0.359 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 458μs 243ns 942ns 0 0 0 2.58 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 182ns 0.203ns 0.786ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.242ns 0.935ns 0.00582 0 0 424 B
master AllCycleMoreComplexBody net472 183ns 0.262ns 1.01ns 0.0638 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 236ns 0.169ns 0.633ns 0.00546 0 0 400 B
master BodyExtractorSimpleBody net472 252ns 0.236ns 0.914ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 227ns 0.356ns 1.33ns 0.00365 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.3μs 9.69ns 37.5ns 1.2 0.0215 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 14.2ns 53.3ns 0.0927 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 182ns 0.133ns 0.496ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 235ns 0.339ns 1.31ns 0.00576 0 0 424 B
#3075 AllCycleMoreComplexBody net472 182ns 0.114ns 0.443ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.145ns 0.522ns 0.00555 0 0 400 B
#3075 BodyExtractorSimpleBody net472 275ns 0.554ns 2.15ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 220ns 0.22ns 0.854ns 0.00374 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.3μs 8.55ns 32ns 1.2 0.0214 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.9μs 11.9ns 46.2ns 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 179μs 126ns 488ns 0.267 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 178μs 141ns 548ns 0.266 0 0 20.33 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.56μs 0.464ns 1.74ns 0.126 0.000776 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.33μs 0.425ns 1.64ns 0.0106 0 0 824 B
#3075 ExecuteNonQuery net472 1.59μs 0.407ns 1.57ns 0.126 0.000788 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.22μs 0.594ns 2.22ns 0.0111 0 0 824 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.15μs 0.526ns 2.04ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.42μs 0.626ns 2.34ns 0.0135 0 0 984 B
master CallElasticsearchAsync net472 2.4μs 1.2ns 4.63ns 0.18 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.49μs 0.711ns 2.56ns 0.0148 0 0 1.1 KB
#3075 CallElasticsearch net472 2.29μs 0.669ns 2.5ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.44μs 1.25ns 4.69ns 0.013 0 0 984 B
#3075 CallElasticsearchAsync net472 2.45μs 0.497ns 1.93ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.43μs 0.698ns 2.61ns 0.0151 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.41μs 9.49ns 36.8ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.57μs 3.83ns 14.3ns 0.0158 0 0 1.22 KB
#3075 ExecuteAsync net472 2.43μs 3.03ns 11.3ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.58μs 1.72ns 6.67ns 0.0165 0 0 1.22 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.09μs 16.5ns 61.8ns 0.394 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.17μs 8.34ns 32.3ns 0.0315 0 0 2.36 KB
#3075 SendAsync net472 5.1μs 5.26ns 20.4ns 0.394 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.26μs 4.59ns 17.8ns 0.0322 0 0 2.36 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 2.77μs 2.2ns 8.52ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.39μs 0.768ns 2.97ns 0.0227 0 0 1.73 KB
#3075 EnrichedLog net472 3.06μs 1.8ns 6.73ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.33μs 1.35ns 5.24ns 0.0233 0 0 1.73 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 147μs 104ns 375ns 0.67 0.223 0 4.5 KB
master EnrichedLog netcoreapp3.1 116μs 316ns 1.14μs 0.0579 0 0 4.38 KB
#3075 EnrichedLog net472 151μs 168ns 650ns 0.687 0.229 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 116μs 164ns 633ns 0.0576 0 0 4.38 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.3μs 11.2ns 43.5ns 0.545 0.00265 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.04μs 8.04ns 31.1ns 0.0505 0 0 3.8 KB
#3075 EnrichedLog net472 5.43μs 6.85ns 26.5ns 0.546 0.00271 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.23μs 7.88ns 30.5ns 0.0512 0 0 3.8 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 1.99μs 1.28ns 4.97ns 0.193 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.65μs 4.47ns 16.7ns 0.0163 0 0 1.21 KB
#3075 SendReceive net472 2.1μs 1.49ns 5.57ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.66μs 0.68ns 2.45ns 0.0164 0 0 1.21 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.79μs 2.24ns 8.67ns 0.33 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.16μs 2.12ns 8.23ns 0.0228 0 0 1.69 KB
#3075 EnrichedLog net472 4.68μs 1.41ns 5.47ns 0.33 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.11μs 1.64ns 5.91ns 0.0226 0 0 1.69 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 878ns 0.418ns 1.62ns 0.105 0 0 658 B
master StartFinishSpan netcoreapp3.1 751ns 0.304ns 1.14ns 0.00865 0 0 648 B
master StartFinishScope net472 1.04μs 0.545ns 2.04ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 862ns 0.397ns 1.49ns 0.0103 0 0 768 B
#3075 StartFinishSpan net472 828ns 0.379ns 1.47ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 739ns 0.221ns 0.827ns 0.00908 0 0 648 B
#3075 StartFinishScope net472 1.07μs 0.78ns 3.02ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 914ns 0.385ns 1.39ns 0.0104 0 0 768 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.29μs 0.358ns 1.38ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.09μs 0.64ns 2.39ns 0.0103 0 0 768 B
#3075 RunOnMethodBegin net472 1.17μs 0.259ns 0.934ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 1.01μs 0.388ns 1.4ns 0.0102 0 0 768 B

andrewlock avatar Aug 16 '22 15:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.122
  • 1 benchmarks are slower, with geometric mean 1.130
  • 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 725μs 1.07μs 4.13μs 0.357 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 449μs 758ns 2.94μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 715μs 896ns 3.47μs 0.359 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 467μs 248ns 927ns 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.BodyExtractorSimpleBody‑netcoreapp3.1 1.130 217.11 245.33

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 182ns 0.107ns 0.385ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 234ns 0.299ns 1.08ns 0.0058 0 0 424 B
master AllCycleMoreComplexBody net472 183ns 0.315ns 1.22ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 237ns 0.641ns 2.48ns 0.00544 0 0 400 B
master BodyExtractorSimpleBody net472 257ns 0.295ns 1.1ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 217ns 0.279ns 1.08ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.1μs 5.37ns 20.8ns 1.21 0.0213 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 13.5ns 50.6ns 0.0902 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 188ns 0.296ns 1.15ns 0.0675 9.18E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 233ns 0.16ns 0.597ns 0.00576 0 0 424 B
#3075 AllCycleMoreComplexBody net472 184ns 0.435ns 1.68ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.261ns 0.977ns 0.00542 0 0 400 B
#3075 BodyExtractorSimpleBody net472 270ns 0.209ns 0.784ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 246ns 0.292ns 1.13ns 0.0037 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.6μs 11ns 42.4ns 1.21 0.0219 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 16.9ns 63.2ns 0.0926 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.000885ns 0.000609ns 0.00236ns 0 0 0 0 b
master SendRequest netcoreapp3.1 176μs 200ns 774ns 0.264 0 0 20.33 KB
#3075 SendRequest net472 5.53E‑05ns 5.53E‑05ns 0.000214ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 177μs 178ns 690ns 0.266 0 0 20.33 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.55μs 1.79ns 6.94ns 0.126 0.000758 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.29μs 0.968ns 3.75ns 0.0108 0 0 824 B
#3075 ExecuteNonQuery net472 1.53μs 1.55ns 5.99ns 0.126 0.000755 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.34μs 2.77ns 10.7ns 0.0114 0 0 824 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.15μs 1.13ns 4.22ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.45μs 0.773ns 2.89ns 0.0136 0 0 984 B
master CallElasticsearchAsync net472 2.26μs 2.55ns 9.86ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.4μs 0.39ns 1.41ns 0.0154 0 0 1.1 KB
#3075 CallElasticsearch net472 2.17μs 0.648ns 2.51ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.35μs 2.65ns 10.3ns 0.0129 0 0 984 B
#3075 CallElasticsearchAsync net472 2.42μs 1.5ns 5.42ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.47μs 0.335ns 1.3ns 0.0148 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.3μs 6.41ns 24.8ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.51μs 2.59ns 10ns 0.0166 0 0 1.22 KB
#3075 ExecuteAsync net472 2.26μs 6.94ns 26.9ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.54μs 4.48ns 16.8ns 0.0164 0 0 1.22 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 4.93μs 15ns 58ns 0.392 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.19μs 12.8ns 49.6ns 0.0318 0 0 2.36 KB
#3075 SendAsync net472 4.83μs 9.71ns 36.3ns 0.393 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.14μs 9.94ns 38.5ns 0.0314 0 0 2.36 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 2.71μs 0.705ns 2.54ns 0.264 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.3μs 0.716ns 2.68ns 0.0242 0 0 1.73 KB
#3075 EnrichedLog net472 2.89μs 1.96ns 7.59ns 0.264 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.43μs 0.888ns 3.44ns 0.0231 0 0 1.73 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 302ns 1.17μs 0.672 0.224 0 4.5 KB
master EnrichedLog netcoreapp3.1 114μs 125ns 483ns 0.0565 0 0 4.38 KB
#3075 EnrichedLog net472 147μs 250ns 969ns 0.662 0.221 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 113μs 276ns 1.07μs 0.0565 0 0 4.38 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.34μs 10.7ns 38.7ns 0.543 0.00266 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.17μs 9.9ns 38.3ns 0.0521 0 0 3.8 KB
#3075 EnrichedLog net472 5.42μs 17.2ns 66.6ns 0.546 0.00272 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.04μs 9.65ns 37.4ns 0.0509 0 0 3.8 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 1.97μs 0.402ns 1.45ns 0.193 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.67μs 0.713ns 2.76ns 0.0167 0 0 1.21 KB
#3075 SendReceive net472 1.94μs 2.61ns 10.1ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.67μs 0.691ns 2.49ns 0.0165 0 0 1.21 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.84μs 2.33ns 9.01ns 0.33 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.11μs 2.06ns 7.96ns 0.0227 0 0 1.69 KB
#3075 EnrichedLog net472 4.7μs 2.63ns 10.2ns 0.33 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.03μs 2.85ns 11ns 0.0221 0 0 1.69 KB
Benchmarks.Trace.SpanBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 1.122 1,151.75 1,026.35

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 823ns 0.993ns 3.72ns 0.105 0 0 658 B
master StartFinishSpan netcoreapp3.1 770ns 2.82ns 10.9ns 0.00897 0 0 648 B
master StartFinishScope net472 1.15μs 0.667ns 2.58ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 948ns 0.644ns 2.49ns 0.0104 0 0 768 B
#3075 StartFinishSpan net472 859ns 0.63ns 2.44ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 738ns 0.678ns 2.63ns 0.00889 0 0 648 B
#3075 StartFinishScope net472 1.03μs 0.783ns 3.03ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 911ns 0.872ns 3.38ns 0.0102 0 0 768 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.25μs 0.604ns 2.34ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 992ns 0.856ns 3.2ns 0.00991 0 0 768 B
#3075 RunOnMethodBegin net472 1.2μs 1.19ns 4.61ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 977ns 0.513ns 1.99ns 0.0102 0 0 768 B

andrewlock avatar Aug 18 '22 12:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 725μs 795ns 3.08μs 0.365 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 462μs 753ns 2.92μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 713μs 1.21μs 4.68μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 455μs 475ns 1.84μs 0 0 0 2.58 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 183ns 0.181ns 0.676ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 243ns 0.288ns 1.12ns 0.0058 0 0 424 B
master AllCycleMoreComplexBody net472 183ns 0.234ns 0.905ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 235ns 0.258ns 0.932ns 0.00553 0 0 400 B
master BodyExtractorSimpleBody net472 256ns 0.352ns 1.32ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 215ns 0.244ns 0.944ns 0.00357 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.7μs 14.2ns 54.8ns 1.21 0.0147 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 12ns 46.6ns 0.0908 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 183ns 0.245ns 0.948ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 233ns 0.282ns 1.09ns 0.00581 0 0 424 B
#3075 AllCycleMoreComplexBody net472 183ns 0.129ns 0.498ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.272ns 1.02ns 0.00543 0 0 400 B
#3075 BodyExtractorSimpleBody net472 256ns 0.228ns 0.851ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 227ns 0.309ns 1.2ns 0.00375 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 6.61ns 23.8ns 1.21 0.0218 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.6μs 9.24ns 35.8ns 0.0884 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.00378ns 0.00206ns 0.00797ns 0 0 0 0 b
master SendRequest netcoreapp3.1 178μs 287ns 1.11μs 0.178 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 178μs 277ns 1.07μs 0.179 0 0 20.33 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.52μs 2.25ns 8.73ns 0.126 0.000755 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.19μs 1.15ns 4.46ns 0.0111 0 0 824 B
#3075 ExecuteNonQuery net472 1.49μs 1.97ns 7.37ns 0.126 0.000742 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.26μs 1.63ns 6.32ns 0.0113 0 0 824 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.19μs 0.668ns 2.59ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.31μs 0.862ns 3.22ns 0.0136 0 0 984 B
master CallElasticsearchAsync net472 2.35μs 0.877ns 3.39ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.44μs 0.815ns 3.16ns 0.015 0 0 1.1 KB
#3075 CallElasticsearch net472 2.15μs 0.658ns 2.46ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.4μs 0.526ns 1.97ns 0.0133 0 0 984 B
#3075 CallElasticsearchAsync net472 2.39μs 1.29ns 4.83ns 0.18 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.47μs 0.449ns 1.74ns 0.0147 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.37μs 8.45ns 32.7ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.55μs 3.56ns 13.8ns 0.0166 0 0 1.22 KB
#3075 ExecuteAsync net472 2.36μs 8.81ns 34.1ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.56μs 2.63ns 9.84ns 0.0164 0 0 1.22 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.01μs 11.7ns 45.4ns 0.394 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.32μs 8.16ns 30.5ns 0.0324 0 0 2.36 KB
#3075 SendAsync net472 4.94μs 13.6ns 52.7ns 0.392 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.19μs 5.53ns 20.7ns 0.0316 0 0 2.36 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 2.94μs 4.39ns 17ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.45μs 0.898ns 3.36ns 0.0232 0 0 1.73 KB
#3075 EnrichedLog net472 2.92μs 2.41ns 9.33ns 0.264 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.34μs 1.22ns 4.74ns 0.0234 0 0 1.73 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 113ns 436ns 0.678 0.226 0 4.5 KB
master EnrichedLog netcoreapp3.1 113μs 137ns 531ns 0.0572 0 0 4.38 KB
#3075 EnrichedLog net472 151μs 186ns 718ns 0.684 0.228 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 115μs 185ns 718ns 0.057 0 0 4.38 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.46μs 17.6ns 68.1ns 0.543 0.00269 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.25μs 9.83ns 38.1ns 0.0527 0 0 3.8 KB
#3075 EnrichedLog net472 5.44μs 7.27ns 28.2ns 0.544 0.00271 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.25μs 9.74ns 37.7ns 0.0505 0 0 3.8 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μs 0.971ns 3.76ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.66μs 0.624ns 2.33ns 0.0166 0 0 1.21 KB
#3075 SendReceive net472 2.01μs 1.88ns 6.79ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.75μs 1.03ns 3.85ns 0.0167 0 0 1.21 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.85μs 1.95ns 7.3ns 0.33 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.19μs 2ns 7.74ns 0.0229 0 0 1.69 KB
#3075 EnrichedLog net472 4.73μs 3.12ns 12.1ns 0.33 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.03μs 1.2ns 4.66ns 0.0223 0 0 1.69 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 859ns 0.611ns 2.36ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 779ns 0.29ns 1.08ns 0.00852 0 0 648 B
master StartFinishScope net472 1.07μs 0.815ns 3.16ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 850ns 0.687ns 2.66ns 0.0102 0 0 768 B
#3075 StartFinishSpan net472 878ns 0.712ns 2.76ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 721ns 0.319ns 1.15ns 0.009 0 0 648 B
#3075 StartFinishScope net472 1.06μs 0.671ns 2.6ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 881ns 0.344ns 1.24ns 0.0106 0 0 768 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.25μs 0.767ns 2.97ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.03μs 0.665ns 2.49ns 0.0103 0 0 768 B
#3075 RunOnMethodBegin net472 1.19μs 0.34ns 1.32ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 982ns 0.354ns 1.37ns 0.0104 0 0 768 B

andrewlock avatar Aug 18 '22 14:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 3 benchmarks are slower, with geometric mean 1.161
  • 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 725μs 795ns 3.08μs 0.365 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 462μs 753ns 2.92μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 729μs 816ns 3.16μs 0.365 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 455μs 601ns 2.33μs 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.254 182.51 228.78
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.115 183.45 204.59

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 183ns 0.181ns 0.676ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 243ns 0.288ns 1.12ns 0.0058 0 0 424 B
master AllCycleMoreComplexBody net472 183ns 0.234ns 0.905ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 235ns 0.258ns 0.932ns 0.00553 0 0 400 B
master BodyExtractorSimpleBody net472 256ns 0.352ns 1.32ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 215ns 0.244ns 0.944ns 0.00357 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.7μs 14.2ns 54.8ns 1.21 0.0147 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 12ns 46.6ns 0.0908 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 203ns 1.01ns 4.42ns 0.0676 9.23E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 233ns 0.18ns 0.697ns 0.00574 0 0 424 B
#3075 AllCycleMoreComplexBody net472 229ns 0.414ns 1.49ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 233ns 0.0864ns 0.311ns 0.00539 0 0 400 B
#3075 BodyExtractorSimpleBody net472 255ns 0.212ns 0.821ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 234ns 0.315ns 1.22ns 0.00374 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.3μs 11.3ns 43.7ns 1.21 0.0214 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 15.4ns 57.5ns 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 0.00378ns 0.00206ns 0.00797ns 0 0 0 0 b
master SendRequest netcoreapp3.1 178μs 287ns 1.11μs 0.178 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 179μs 82ns 318ns 0.179 0 0 20.33 KB
Benchmarks.Trace.DbCommandBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 1.120 1,186.26 1,328.39

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net472 1.52μs 2.25ns 8.73ns 0.126 0.000755 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.19μs 1.15ns 4.46ns 0.0111 0 0 824 B
#3075 ExecuteNonQuery net472 1.54μs 0.903ns 3.38ns 0.126 0.000771 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.33μs 0.94ns 3.64ns 0.0113 0 0 824 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.19μs 0.668ns 2.59ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.31μs 0.862ns 3.22ns 0.0136 0 0 984 B
master CallElasticsearchAsync net472 2.35μs 0.877ns 3.39ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.44μs 0.815ns 3.16ns 0.015 0 0 1.1 KB
#3075 CallElasticsearch net472 2.24μs 0.645ns 2.5ns 0.158 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.36μs 0.573ns 2.22ns 0.0129 0 0 984 B
#3075 CallElasticsearchAsync net472 2.28μs 1.06ns 4.1ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.43μs 0.296ns 1.15ns 0.015 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.37μs 8.45ns 32.7ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.55μs 3.56ns 13.8ns 0.0166 0 0 1.22 KB
#3075 ExecuteAsync net472 2.4μs 4.83ns 18.7ns 0.199 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.57μs 1.62ns 6.05ns 0.0164 0 0 1.22 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.01μs 11.7ns 45.4ns 0.394 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.32μs 8.16ns 30.5ns 0.0324 0 0 2.36 KB
#3075 SendAsync net472 5.03μs 13.4ns 51.9ns 0.392 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.16μs 5.87ns 22.7ns 0.0327 0 0 2.36 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 2.94μs 4.39ns 17ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.45μs 0.898ns 3.36ns 0.0232 0 0 1.73 KB
#3075 EnrichedLog net472 2.94μs 1.5ns 5.8ns 0.264 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.41μs 2.37ns 8.88ns 0.0229 0 0 1.73 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 113ns 436ns 0.678 0.226 0 4.5 KB
master EnrichedLog netcoreapp3.1 113μs 137ns 531ns 0.0572 0 0 4.38 KB
#3075 EnrichedLog net472 153μs 137ns 495ns 0.695 0.232 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 119μs 184ns 711ns 0.0585 0 0 4.38 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.46μs 17.6ns 68.1ns 0.543 0.00269 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.25μs 9.83ns 38.1ns 0.0527 0 0 3.8 KB
#3075 EnrichedLog net472 5.45μs 7.67ns 29.7ns 0.545 0.00271 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.14μs 11.2ns 43.3ns 0.052 0 0 3.8 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μs 0.971ns 3.76ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.66μs 0.624ns 2.33ns 0.0166 0 0 1.21 KB
#3075 SendReceive net472 2.11μs 1.2ns 4.63ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.71μs 3.43ns 13.3ns 0.0162 0 0 1.21 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.85μs 1.95ns 7.3ns 0.33 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.19μs 2ns 7.74ns 0.0229 0 0 1.69 KB
#3075 EnrichedLog net472 4.8μs 2.37ns 9.18ns 0.329 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.09μs 2.02ns 7.81ns 0.0225 0 0 1.69 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 859ns 0.611ns 2.36ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 779ns 0.29ns 1.08ns 0.00852 0 0 648 B
master StartFinishScope net472 1.07μs 0.815ns 3.16ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 850ns 0.687ns 2.66ns 0.0102 0 0 768 B
#3075 StartFinishSpan net472 897ns 1.39ns 5.37ns 0.105 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 746ns 0.464ns 1.74ns 0.0089 0 0 648 B
#3075 StartFinishScope net472 1.09μs 0.419ns 1.62ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 924ns 0.3ns 1.16ns 0.0101 0 0 768 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.25μs 0.767ns 2.97ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.03μs 0.665ns 2.49ns 0.0103 0 0 768 B
#3075 RunOnMethodBegin net472 1.2μs 0.644ns 2.49ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 1.09μs 0.664ns 2.57ns 0.0105 0 0 768 B

andrewlock avatar Aug 18 '22 16:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 728μs 280ns 1.08μs 0.363 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 469μs 319ns 1.24μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 724μs 361ns 1.4μs 0.361 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 456μs 146ns 545ns 0 0 0 2.58 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 183ns 0.2ns 0.721ns 0.0676 9.21E-05 0 425 B
master AllCycleSimpleBody netcoreapp3.1 234ns 0.279ns 1.08ns 0.00584 0 0 424 B
master AllCycleMoreComplexBody net472 183ns 0.512ns 1.98ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 234ns 0.136ns 0.525ns 0.00553 0 0 400 B
master BodyExtractorSimpleBody net472 264ns 0.23ns 0.86ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 216ns 0.303ns 1.13ns 0.00371 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.3μs 6.62ns 25.6ns 1.2 0.0215 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 14.7ns 55.2ns 0.0897 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 183ns 0.196ns 0.759ns 0.0675 9.2E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 234ns 0.463ns 1.79ns 0.00577 0 0 424 B
#3075 AllCycleMoreComplexBody net472 180ns 0.104ns 0.403ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 236ns 0.206ns 0.77ns 0.00549 0 0 400 B
#3075 BodyExtractorSimpleBody net472 258ns 0.107ns 0.37ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 220ns 0.247ns 0.958ns 0.00362 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 7.28ns 26.2ns 1.2 0.0218 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 15.5ns 58.1ns 0.0913 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 179μs 171ns 661ns 0.179 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 180μs 113ns 422ns 0.27 0 0 20.34 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.53μs 0.604ns 2.26ns 0.126 0.000767 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.3μs 0.788ns 2.73ns 0.0111 0 0 824 B
#3075 ExecuteNonQuery net472 1.57μs 0.959ns 3.71ns 0.126 0.000786 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.33μs 0.884ns 3.42ns 0.0106 0 0 824 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.29μs 0.997ns 3.86ns 0.158 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.36μs 1.18ns 4.42ns 0.0129 0 0 984 B
master CallElasticsearchAsync net472 2.32μs 1.03ns 4ns 0.18 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.51μs 2.72ns 10.2ns 0.0142 0 0 1.1 KB
#3075 CallElasticsearch net472 2.15μs 0.873ns 3.27ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.38μs 1.28ns 4.97ns 0.0136 0 0 984 B
#3075 CallElasticsearchAsync net472 2.39μs 1.25ns 4.86ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.46μs 1.35ns 5.05ns 0.0145 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.37μs 1.79ns 6.46ns 0.199 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.51μs 4.74ns 18.3ns 0.0164 0 0 1.22 KB
#3075 ExecuteAsync net472 2.37μs 4.51ns 17.5ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.57μs 2.28ns 8.85ns 0.0166 0 0 1.22 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 4.88μs 12.1ns 45.1ns 0.393 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.19μs 5.24ns 19.6ns 0.032 0 0 2.36 KB
#3075 SendAsync net472 4.9μs 13.1ns 50.6ns 0.394 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.19μs 3.73ns 14ns 0.0316 0 0 2.36 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 2.94μs 1.74ns 6.73ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.37μs 1.98ns 7.42ns 0.0243 0 0 1.73 KB
#3075 EnrichedLog net472 2.87μs 1.23ns 4.44ns 0.264 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.34μs 1.38ns 4.96ns 0.0233 0 0 1.73 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 161ns 622ns 0.674 0.225 0 4.5 KB
master EnrichedLog netcoreapp3.1 116μs 282ns 1.09μs 0.0583 0 0 4.38 KB
#3075 EnrichedLog net472 153μs 366ns 1.42μs 0.674 0.225 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 115μs 146ns 566ns 0.0569 0 0 4.38 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.3μs 17ns 65.8ns 0.544 0.00265 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.24μs 13.6ns 49ns 0.0508 0 0 3.8 KB
#3075 EnrichedLog net472 5.35μs 8.65ns 33.5ns 0.545 0.00267 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.29μs 6.72ns 25.2ns 0.0525 0 0 3.8 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 1.98μs 1.05ns 3.77ns 0.193 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.68μs 1.22ns 4.74ns 0.0168 0 0 1.21 KB
#3075 SendReceive net472 2.14μs 2.6ns 10.1ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.7μs 1.07ns 4.01ns 0.0162 0 0 1.21 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.79μs 2.88ns 11.2ns 0.328 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.21μs 1.74ns 6.75ns 0.0232 0 0 1.69 KB
#3075 EnrichedLog net472 4.78μs 2.42ns 8.71ns 0.329 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.01μs 1.24ns 4.29ns 0.0221 0 0 1.69 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 870ns 0.931ns 3.48ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 750ns 0.307ns 1.15ns 0.00864 0 0 648 B
master StartFinishScope net472 1.07μs 0.561ns 2.17ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 878ns 1.24ns 4.64ns 0.0106 0 0 768 B
#3075 StartFinishSpan net472 860ns 0.483ns 1.81ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 740ns 0.203ns 0.761ns 0.00889 0 0 648 B
#3075 StartFinishScope net472 1.07μs 2.08ns 7.78ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 844ns 0.688ns 2.58ns 0.0105 0 0 768 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.29μs 0.604ns 2.26ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 970ns 0.274ns 1.03ns 0.0102 0 0 768 B
#3075 RunOnMethodBegin net472 1.25μs 0.734ns 2.84ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 987ns 0.339ns 1.31ns 0.0104 0 0 768 B

andrewlock avatar Aug 18 '22 17:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.272
  • 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 717μs 1μs 3.89μs 0.359 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 455μs 582ns 2.26μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 715μs 1.42μs 5.49μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 445μs 799ns 3.09μs 0 0 0 2.59 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.272 232.42 182.79

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 232ns 0.242ns 0.906ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 235ns 0.269ns 1.04ns 0.00581 0 0 424 B
master AllCycleMoreComplexBody net472 184ns 0.252ns 0.975ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 235ns 0.195ns 0.754ns 0.0054 0 0 400 B
master BodyExtractorSimpleBody net472 261ns 0.358ns 1.39ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 221ns 0.272ns 1.02ns 0.00379 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.8μs 12.7ns 47.4ns 1.21 0.0147 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 10.3ns 37.3ns 0.0923 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 183ns 0.164ns 0.635ns 0.0676 9.22E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 235ns 0.277ns 1.07ns 0.00567 0 0 424 B
#3075 AllCycleMoreComplexBody net472 185ns 0.13ns 0.503ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 237ns 0.239ns 0.924ns 0.00545 0 0 400 B
#3075 BodyExtractorSimpleBody net472 255ns 0.161ns 0.622ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 220ns 0.192ns 0.72ns 0.00367 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 16.9ns 63.2ns 1.21 0.0217 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 17.9ns 69.2ns 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 0.00178ns 0.00132ns 0.00513ns 0 0 0 0 b
master SendRequest netcoreapp3.1 179μs 255ns 987ns 0.267 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 179μs 121ns 453ns 0.266 0 0 20.33 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.53μs 2.25ns 8.71ns 0.126 0.00076 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.22μs 1.22ns 4.55ns 0.011 0 0 824 B
#3075 ExecuteNonQuery net472 1.51μs 2.18ns 8.43ns 0.126 0.000766 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.24μs 1.57ns 5.89ns 0.0109 0 0 824 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.15μs 1.39ns 5ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.46μs 0.953ns 3.56ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.4μs 0.525ns 1.96ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.45μs 0.719ns 2.69ns 0.0152 0 0 1.1 KB
#3075 CallElasticsearch net472 2.16μs 0.745ns 2.89ns 0.158 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.35μs 0.411ns 1.54ns 0.0135 0 0 984 B
#3075 CallElasticsearchAsync net472 2.25μs 0.615ns 2.13ns 0.18 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.44μs 0.416ns 1.56ns 0.0152 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.33μs 5.78ns 22.4ns 0.199 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.57μs 2.91ns 11.3ns 0.0169 0 0 1.22 KB
#3075 ExecuteAsync net472 2.41μs 5.92ns 22.2ns 0.199 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.54μs 3.84ns 14.9ns 0.0164 0 0 1.22 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 4.94μs 11.6ns 45ns 0.393 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.21μs 6.92ns 26.8ns 0.0319 0 0 2.36 KB
#3075 SendAsync net472 4.9μs 11.2ns 43.4ns 0.393 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.26μs 8.54ns 33.1ns 0.0322 0 0 2.36 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 2.81μs 0.637ns 2.38ns 0.264 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.42μs 0.95ns 3.55ns 0.0229 0 0 1.73 KB
#3075 EnrichedLog net472 2.81μs 0.682ns 2.55ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.35μs 1.38ns 5.34ns 0.0235 0 0 1.73 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 121ns 436ns 0.681 0.227 0 4.5 KB
master EnrichedLog netcoreapp3.1 114μs 252ns 974ns 0.0567 0 0 4.38 KB
#3075 EnrichedLog net472 149μs 90.3ns 338ns 0.675 0.225 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 115μs 174ns 674ns 0.0578 0 0 4.38 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.15μs 13.4ns 51.8ns 0.545 0.00256 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.11μs 4.98ns 18.7ns 0.0515 0 0 3.8 KB
#3075 EnrichedLog net472 5.29μs 16.9ns 65.6ns 0.545 0.00259 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.17μs 11ns 42.7ns 0.0521 0 0 3.8 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.08μs 0.618ns 2.39ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.69μs 0.602ns 2.17ns 0.0161 0 0 1.21 KB
#3075 SendReceive net472 2.01μs 1.05ns 3.92ns 0.194 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.75μs 0.522ns 1.95ns 0.0166 0 0 1.21 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.69μs 2.09ns 8.08ns 0.328 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.15μs 4.5ns 16.8ns 0.0226 0 0 1.69 KB
#3075 EnrichedLog net472 4.87μs 1.46ns 5.65ns 0.328 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.16μs 2.11ns 8.19ns 0.0227 0 0 1.69 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 830ns 1.5ns 5.8ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 739ns 0.577ns 2.16ns 0.00846 0 0 648 B
master StartFinishScope net472 1.05μs 1.07ns 4.14ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 938ns 0.544ns 2.11ns 0.0103 0 0 768 B
#3075 StartFinishSpan net472 853ns 1.09ns 4.21ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 725ns 0.616ns 2.39ns 0.00872 0 0 648 B
#3075 StartFinishScope net472 1.04μs 1.3ns 5.05ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 936ns 0.87ns 3.37ns 0.0103 0 0 768 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.21μs 1.26ns 4.7ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.01μs 0.959ns 3.59ns 0.0106 0 0 768 B
#3075 RunOnMethodBegin net472 1.16μs 1.49ns 5.79ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 968ns 0.891ns 3.45ns 0.0102 0 0 768 B

andrewlock avatar Aug 19 '22 11:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.201
  • 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 717μs 1μs 3.89μs 0.359 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 455μs 582ns 2.26μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 714μs 1.22μs 4.72μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 463μs 912ns 3.41μs 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.201 232.42 193.60

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 232ns 0.242ns 0.906ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 235ns 0.269ns 1.04ns 0.00581 0 0 424 B
master AllCycleMoreComplexBody net472 184ns 0.252ns 0.975ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 235ns 0.195ns 0.754ns 0.0054 0 0 400 B
master BodyExtractorSimpleBody net472 261ns 0.358ns 1.39ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 221ns 0.272ns 1.02ns 0.00379 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.8μs 12.7ns 47.4ns 1.21 0.0147 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 10.3ns 37.3ns 0.0923 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 194ns 0.127ns 0.476ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 235ns 0.466ns 1.8ns 0.00574 0 0 424 B
#3075 AllCycleMoreComplexBody net472 191ns 0.129ns 0.501ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 236ns 0.278ns 1.08ns 0.00534 0 0 400 B
#3075 BodyExtractorSimpleBody net472 260ns 0.18ns 0.674ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 229ns 0.174ns 0.673ns 0.00368 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.2μs 12.1ns 45.3ns 1.21 0.0214 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12μs 14.7ns 55.2ns 0.0893 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.00178ns 0.00132ns 0.00513ns 0 0 0 0 b
master SendRequest netcoreapp3.1 179μs 255ns 987ns 0.267 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 178μs 221ns 856ns 0.267 0 0 20.33 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.53μs 2.25ns 8.71ns 0.126 0.00076 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.22μs 1.22ns 4.55ns 0.011 0 0 824 B
#3075 ExecuteNonQuery net472 1.61μs 2.23ns 8.62ns 0.126 0.000806 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.26μs 1.38ns 5.36ns 0.0113 0 0 824 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.15μs 1.39ns 5ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.46μs 0.953ns 3.56ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.4μs 0.525ns 1.96ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.45μs 0.719ns 2.69ns 0.0152 0 0 1.1 KB
#3075 CallElasticsearch net472 2.27μs 0.575ns 2.23ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.41μs 0.772ns 2.67ns 0.0135 0 0 984 B
#3075 CallElasticsearchAsync net472 2.23μs 0.827ns 3.2ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.54μs 0.378ns 1.46ns 0.0146 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.33μs 5.78ns 22.4ns 0.199 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.57μs 2.91ns 11.3ns 0.0169 0 0 1.22 KB
#3075 ExecuteAsync net472 2.33μs 8.53ns 33ns 0.199 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.51μs 3.59ns 13.9ns 0.0166 0 0 1.22 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 4.94μs 11.6ns 45ns 0.393 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.21μs 6.92ns 26.8ns 0.0319 0 0 2.36 KB
#3075 SendAsync net472 4.96μs 10.7ns 41.5ns 0.394 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.2μs 8.44ns 32.7ns 0.0319 0 0 2.36 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 2.81μs 0.637ns 2.38ns 0.264 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.42μs 0.95ns 3.55ns 0.0229 0 0 1.73 KB
#3075 EnrichedLog net472 2.83μs 0.968ns 3.62ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.35μs 1.01ns 3.78ns 0.0235 0 0 1.73 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 121ns 436ns 0.681 0.227 0 4.5 KB
master EnrichedLog netcoreapp3.1 114μs 252ns 974ns 0.0567 0 0 4.38 KB
#3075 EnrichedLog net472 147μs 64.8ns 242ns 0.666 0.222 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 113μs 166ns 642ns 0 0 0 4.38 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.15μs 13.4ns 51.8ns 0.545 0.00256 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.11μs 4.98ns 18.7ns 0.0515 0 0 3.8 KB
#3075 EnrichedLog net472 5.2μs 11.5ns 44.7ns 0.546 0.00262 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.23μs 12.6ns 48.9ns 0.0527 0 0 3.8 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.08μs 0.618ns 2.39ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.69μs 0.602ns 2.17ns 0.0161 0 0 1.21 KB
#3075 SendReceive net472 2μs 1.03ns 3.84ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.61μs 0.414ns 1.6ns 0.0161 0 0 1.21 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.69μs 2.09ns 8.08ns 0.328 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.15μs 4.5ns 16.8ns 0.0226 0 0 1.69 KB
#3075 EnrichedLog net472 4.92μs 1.56ns 6.05ns 0.328 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.2μs 1.77ns 6.86ns 0.023 0 0 1.69 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 830ns 1.5ns 5.8ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 739ns 0.577ns 2.16ns 0.00846 0 0 648 B
master StartFinishScope net472 1.05μs 1.07ns 4.14ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 938ns 0.544ns 2.11ns 0.0103 0 0 768 B
#3075 StartFinishSpan net472 873ns 1.22ns 4.74ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 802ns 0.616ns 2.39ns 0.00878 0 0 648 B
#3075 StartFinishScope net472 1.08μs 1.51ns 5.85ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 868ns 0.804ns 3.11ns 0.0104 0 0 768 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.21μs 1.26ns 4.7ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.01μs 0.959ns 3.59ns 0.0106 0 0 768 B
#3075 RunOnMethodBegin net472 1.26μs 1.3ns 5.04ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 991ns 1.42ns 5.5ns 0.0104 0 0 768 B

andrewlock avatar Aug 19 '22 12:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.281
  • 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 717μs 1μs 3.89μs 0.359 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 455μs 582ns 2.26μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 724μs 812ns 3.14μs 0.361 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 468μs 801ns 3μs 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.281 232.42 181.42

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 232ns 0.242ns 0.906ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 235ns 0.269ns 1.04ns 0.00581 0 0 424 B
master AllCycleMoreComplexBody net472 184ns 0.252ns 0.975ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 235ns 0.195ns 0.754ns 0.0054 0 0 400 B
master BodyExtractorSimpleBody net472 261ns 0.358ns 1.39ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 221ns 0.272ns 1.02ns 0.00379 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.8μs 12.7ns 47.4ns 1.21 0.0147 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 10.3ns 37.3ns 0.0923 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 182ns 0.14ns 0.541ns 0.0675 9.18E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 235ns 0.245ns 0.917ns 0.00584 0 0 424 B
#3075 AllCycleMoreComplexBody net472 181ns 0.0713ns 0.247ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 237ns 0.199ns 0.743ns 0.00542 0 0 400 B
#3075 BodyExtractorSimpleBody net472 256ns 0.262ns 1.01ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 222ns 0.3ns 1.16ns 0.00367 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.2μs 9.03ns 33.8ns 1.2 0.0213 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.5μs 13.6ns 50.9ns 0.087 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.00178ns 0.00132ns 0.00513ns 0 0 0 0 b
master SendRequest netcoreapp3.1 179μs 255ns 987ns 0.267 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 177μs 245ns 950ns 0.266 0 0 20.33 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.53μs 2.25ns 8.71ns 0.126 0.00076 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.22μs 1.22ns 4.55ns 0.011 0 0 824 B
#3075 ExecuteNonQuery net472 1.5μs 1.57ns 6.06ns 0.126 0.00075 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.24μs 0.92ns 3.44ns 0.0111 0 0 824 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.15μs 1.39ns 5ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.46μs 0.953ns 3.56ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.4μs 0.525ns 1.96ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.45μs 0.719ns 2.69ns 0.0152 0 0 1.1 KB
#3075 CallElasticsearch net472 2.26μs 0.686ns 2.66ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.38μs 1.09ns 4.09ns 0.0129 0 0 984 B
#3075 CallElasticsearchAsync net472 2.41μs 0.837ns 3.24ns 0.18 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.42μs 0.289ns 1ns 0.015 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.33μs 5.78ns 22.4ns 0.199 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.57μs 2.91ns 11.3ns 0.0169 0 0 1.22 KB
#3075 ExecuteAsync net472 2.32μs 5.84ns 22.6ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.55μs 3.4ns 12.7ns 0.0163 0 0 1.22 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 4.94μs 11.6ns 45ns 0.393 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.21μs 6.92ns 26.8ns 0.0319 0 0 2.36 KB
#3075 SendAsync net472 4.93μs 15.2ns 58.7ns 0.392 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.2μs 4.96ns 19.2ns 0.0324 0 0 2.36 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 2.81μs 0.637ns 2.38ns 0.264 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.42μs 0.95ns 3.55ns 0.0229 0 0 1.73 KB
#3075 EnrichedLog net472 2.94μs 3ns 11.6ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.34μs 1.75ns 6.54ns 0.0234 0 0 1.73 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 121ns 436ns 0.681 0.227 0 4.5 KB
master EnrichedLog netcoreapp3.1 114μs 252ns 974ns 0.0567 0 0 4.38 KB
#3075 EnrichedLog net472 150μs 72.3ns 270ns 0.664 0.221 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 116μs 145ns 544ns 0.0576 0 0 4.38 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.15μs 13.4ns 51.8ns 0.545 0.00256 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.11μs 4.98ns 18.7ns 0.0515 0 0 3.8 KB
#3075 EnrichedLog net472 5.29μs 14.8ns 57.3ns 0.546 0.00261 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.31μs 14.9ns 57.8ns 0.0533 0 0 3.8 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.08μs 0.618ns 2.39ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.69μs 0.602ns 2.17ns 0.0161 0 0 1.21 KB
#3075 SendReceive net472 2.1μs 1.22ns 4.72ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.66μs 0.557ns 2.16ns 0.0159 0 0 1.21 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.69μs 2.09ns 8.08ns 0.328 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.15μs 4.5ns 16.8ns 0.0226 0 0 1.69 KB
#3075 EnrichedLog net472 4.86μs 2.32ns 8.68ns 0.329 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.08μs 2.26ns 8.76ns 0.0224 0 0 1.69 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 830ns 1.5ns 5.8ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 739ns 0.577ns 2.16ns 0.00846 0 0 648 B
master StartFinishScope net472 1.05μs 1.07ns 4.14ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 938ns 0.544ns 2.11ns 0.0103 0 0 768 B
#3075 StartFinishSpan net472 892ns 0.436ns 1.69ns 0.105 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 756ns 0.319ns 1.19ns 0.00857 0 0 648 B
#3075 StartFinishScope net472 1.08μs 0.362ns 1.36ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 897ns 0.431ns 1.67ns 0.0103 0 0 768 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.21μs 1.26ns 4.7ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.01μs 0.959ns 3.59ns 0.0106 0 0 768 B
#3075 RunOnMethodBegin net472 1.24μs 0.603ns 2.33ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 973ns 1.57ns 6.09ns 0.0106 0 0 768 B

andrewlock avatar Aug 19 '22 17:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.271
  • 1 benchmarks are slower, with geometric mean 1.122
  • 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 717μs 1μs 3.89μs 0.359 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 455μs 582ns 2.26μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 726μs 409ns 1.53μs 0.361 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 453μs 435ns 1.69μs 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.271 232.42 182.93

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 232ns 0.242ns 0.906ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 235ns 0.269ns 1.04ns 0.00581 0 0 424 B
master AllCycleMoreComplexBody net472 184ns 0.252ns 0.975ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 235ns 0.195ns 0.754ns 0.0054 0 0 400 B
master BodyExtractorSimpleBody net472 261ns 0.358ns 1.39ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 221ns 0.272ns 1.02ns 0.00379 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.8μs 12.7ns 47.4ns 1.21 0.0147 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 10.3ns 37.3ns 0.0923 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 183ns 0.21ns 0.784ns 0.0675 9.25E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 242ns 0.353ns 1.37ns 0.00571 0 0 424 B
#3075 AllCycleMoreComplexBody net472 180ns 0.113ns 0.422ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 235ns 0.141ns 0.527ns 0.00547 0 0 400 B
#3075 BodyExtractorSimpleBody net472 255ns 0.218ns 0.844ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 235ns 0.296ns 1.11ns 0.00367 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.4μs 9.38ns 36.3ns 1.21 0.0214 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 18.1ns 69.9ns 0.0885 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.00178ns 0.00132ns 0.00513ns 0 0 0 0 b
master SendRequest netcoreapp3.1 179μs 255ns 987ns 0.267 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 180μs 237ns 916ns 0.269 0 0 20.33 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.53μs 2.25ns 8.71ns 0.126 0.00076 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.22μs 1.22ns 4.55ns 0.011 0 0 824 B
#3075 ExecuteNonQuery net472 1.56μs 1.09ns 4.06ns 0.126 0.000782 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.25μs 0.429ns 1.55ns 0.0112 0 0 824 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.15μs 1.39ns 5ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.46μs 0.953ns 3.56ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.4μs 0.525ns 1.96ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.45μs 0.719ns 2.69ns 0.0152 0 0 1.1 KB
#3075 CallElasticsearch net472 2.16μs 0.838ns 3.25ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.44μs 0.863ns 3.34ns 0.0136 0 0 984 B
#3075 CallElasticsearchAsync net472 2.37μs 0.762ns 2.85ns 0.18 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.43μs 0.479ns 1.86ns 0.015 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.33μs 5.78ns 22.4ns 0.199 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.57μs 2.91ns 11.3ns 0.0169 0 0 1.22 KB
#3075 ExecuteAsync net472 2.38μs 3ns 11.6ns 0.199 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.54μs 2.1ns 7.85ns 0.0169 0 0 1.22 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 4.94μs 11.6ns 45ns 0.393 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.21μs 6.92ns 26.8ns 0.0319 0 0 2.36 KB
#3075 SendAsync net472 5.03μs 6.94ns 26.9ns 0.394 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.15μs 3.69ns 14.3ns 0.0315 0 0 2.36 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 2.81μs 0.637ns 2.38ns 0.264 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.42μs 0.95ns 3.55ns 0.0229 0 0 1.73 KB
#3075 EnrichedLog net472 2.8μs 1.19ns 4.61ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.38μs 0.764ns 2.96ns 0.0238 0 0 1.73 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 121ns 436ns 0.681 0.227 0 4.5 KB
master EnrichedLog netcoreapp3.1 114μs 252ns 974ns 0.0567 0 0 4.38 KB
#3075 EnrichedLog net472 151μs 134ns 483ns 0.669 0.223 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 114μs 158ns 612ns 0.0577 0 0 4.38 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.15μs 13.4ns 51.8ns 0.545 0.00256 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.11μs 4.98ns 18.7ns 0.0515 0 0 3.8 KB
#3075 EnrichedLog net472 5.36μs 15.3ns 55.2ns 0.544 0.00267 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.09μs 5.64ns 21.8ns 0.0512 0 0 3.8 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.08μs 0.618ns 2.39ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.69μs 0.602ns 2.17ns 0.0161 0 0 1.21 KB
#3075 SendReceive net472 1.96μs 4.36ns 15.7ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.7μs 0.583ns 2.18ns 0.016 0 0 1.21 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.69μs 2.09ns 8.08ns 0.328 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.15μs 4.5ns 16.8ns 0.0226 0 0 1.69 KB
#3075 EnrichedLog net472 4.5μs 1.4ns 5.41ns 0.33 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.2μs 1.95ns 7.56ns 0.023 0 0 1.69 KB
Benchmarks.Trace.SpanBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

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

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 830ns 1.5ns 5.8ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 739ns 0.577ns 2.16ns 0.00846 0 0 648 B
master StartFinishScope net472 1.05μs 1.07ns 4.14ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 938ns 0.544ns 2.11ns 0.0103 0 0 768 B
#3075 StartFinishSpan net472 851ns 0.771ns 2.99ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 830ns 0.349ns 1.35ns 0.00878 0 0 648 B
#3075 StartFinishScope net472 1.06μs 1.11ns 4.31ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 926ns 0.452ns 1.69ns 0.0102 0 0 768 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.21μs 1.26ns 4.7ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.01μs 0.959ns 3.59ns 0.0106 0 0 768 B
#3075 RunOnMethodBegin net472 1.19μs 0.502ns 1.94ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 991ns 0.608ns 2.36ns 0.0104 0 0 768 B

andrewlock avatar Aug 19 '22 23:08 andrewlock

Code Coverage Report :bar_chart:

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

master #3075 Change
Lines 16866 / 23247 16932 / 23471
Lines % 73% 72% 0% :heavy_check_mark:
Branches 10065 / 14360 10115 / 14494
Branches % 70% 70% 0% :heavy_check_mark:
Complexity 15456 15592 136 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :heavy_check_mark:

master #3075 Change
Lines % 73% 72% 0% :heavy_check_mark:
Branches % 70% 70% 0% :heavy_check_mark:
Complexity 15456 15592 136 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.XUnit.XUnitTestRunnerRunAsyncIntegration -25% :no_entry: -20% :no_entry: 6 :no_entry:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.XUnit.XUnitIntegration -23% :no_entry: -41% :no_entry: 32 :no_entry:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.NUnit.NUnitIntegration -16% :no_entry: -26% :no_entry: 32 :no_entry:
Datadog.Trace.Ci.CIVisibility -6% :no_entry: -1% :warning: 15 :no_entry:
Datadog.Trace.Ci.GitInfo 5% :heavy_check_mark: 8% :heavy_check_mark: 0 :heavy_check_mark:

The following classes were added in #3075:

File Line coverage Branch coverage Complexity
Datadog.Trace.Ci.SkippeableTest 0% 0% 3
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.NUnit.NUnitWorkItemIntegration 38% 71% 14

View the full reports for further details:

andrewlock avatar Aug 20 '22 00:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.228
  • 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 721μs 1μs 3.87μs 0.359 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 470μs 685ns 2.65μs 0 0 0 2.59 KB
#3075 WriteAndFlushEnrichedTraces net472 711μs 1.1μs 4.28μs 0.353 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 460μs 589ns 2.28μs 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.228 184.63 226.76

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 188ns 0.177ns 0.685ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 234ns 0.461ns 1.79ns 0.00578 0 0 424 B
master AllCycleMoreComplexBody net472 185ns 0.593ns 2.22ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 238ns 0.312ns 1.17ns 0.00548 0 0 400 B
master BodyExtractorSimpleBody net472 252ns 0.206ns 0.742ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 222ns 0.182ns 0.683ns 0.00368 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.2μs 14.7ns 56.9ns 1.21 0.0213 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 11.5ns 44.7ns 0.0923 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 183ns 0.208ns 0.777ns 0.0675 9.2E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 233ns 0.279ns 1.08ns 0.00589 0 0 424 B
#3075 AllCycleMoreComplexBody net472 227ns 0.23ns 0.889ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 235ns 0.179ns 0.647ns 0.00545 0 0 400 B
#3075 BodyExtractorSimpleBody net472 266ns 0.253ns 0.948ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 221ns 0.282ns 1.09ns 0.00376 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.3μs 11.2ns 41.8ns 1.21 0.0215 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12μs 14.1ns 54.5ns 0.0896 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 176μs 229ns 886ns 0.263 0 0 20.33 KB
#3075 SendRequest net472 0.000228ns 0.000228ns 0.000882ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 179μs 319ns 1.24μs 0.269 0 0 20.33 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.56μs 2.25ns 8.73ns 0.126 0.000767 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.28μs 1.19ns 4.47ns 0.0109 0 0 824 B
#3075 ExecuteNonQuery net472 1.59μs 2.71ns 10.5ns 0.125 0.000794 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.23μs 1.71ns 6.4ns 0.011 0 0 824 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.25μs 0.577ns 2.08ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.39μs 0.599ns 2.24ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.42μs 0.584ns 2.18ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.5μs 1.91ns 7.41ns 0.0151 0 0 1.1 KB
#3075 CallElasticsearch net472 2.23μs 0.449ns 1.74ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.4μs 0.904ns 3.38ns 0.0132 0 0 984 B
#3075 CallElasticsearchAsync net472 2.38μs 1.16ns 4.49ns 0.18 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.49μs 2.12ns 7.95ns 0.0147 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.47μs 6.23ns 23.3ns 0.199 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.53μs 2.44ns 9.13ns 0.0163 0 0 1.22 KB
#3075 ExecuteAsync net472 2.32μs 2.31ns 8.94ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.58μs 4.35ns 16.9ns 0.0168 0 0 1.22 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 4.92μs 10.4ns 40.2ns 0.393 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.21μs 11.1ns 43.1ns 0.0321 0 0 2.36 KB
#3075 SendAsync net472 4.89μs 7.83ns 30.3ns 0.392 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.22μs 3.64ns 13.6ns 0.0316 0 0 2.36 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 2.79μs 1.19ns 4.28ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.3μs 0.869ns 3.25ns 0.023 0 0 1.73 KB
#3075 EnrichedLog net472 2.91μs 0.712ns 2.67ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.42μs 1.56ns 5.83ns 0.0229 0 0 1.73 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 105ns 408ns 0.678 0.226 0 4.5 KB
master EnrichedLog netcoreapp3.1 115μs 250ns 967ns 0.0576 0 0 4.38 KB
#3075 EnrichedLog net472 146μs 41.3ns 155ns 0.663 0.221 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 115μs 146ns 565ns 0.0571 0 0 4.38 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.26μs 13.4ns 51.9ns 0.545 0.00261 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.2μs 8.5ns 32.9ns 0.0506 0 0 3.8 KB
#3075 EnrichedLog net472 5.34μs 10.2ns 38.1ns 0.545 0.00266 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.26μs 5.46ns 21.2ns 0.0515 0 0 3.8 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 1.93μs 0.575ns 2.15ns 0.193 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.63μs 0.967ns 3.75ns 0.0165 0 0 1.21 KB
#3075 SendReceive net472 1.99μs 0.786ns 3.04ns 0.194 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.69μs 0.463ns 1.73ns 0.0162 0 0 1.21 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.79μs 1.76ns 6.81ns 0.329 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.08μs 1.63ns 6.3ns 0.0224 0 0 1.69 KB
#3075 EnrichedLog net472 4.77μs 1.34ns 5.18ns 0.33 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.05μs 1.82ns 6.82ns 0.0223 0 0 1.69 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 915ns 1.85ns 7.16ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 730ns 0.902ns 3.49ns 0.00875 0 0 648 B
master StartFinishScope net472 1.05μs 1.23ns 4.76ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 887ns 1.17ns 4.55ns 0.0106 0 0 768 B
#3075 StartFinishSpan net472 911ns 0.988ns 3.83ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 715ns 0.545ns 2.11ns 0.00882 0 0 648 B
#3075 StartFinishScope net472 1.08μs 1.56ns 6.02ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 895ns 1.03ns 3.98ns 0.0107 0 0 768 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.24μs 1.32ns 5.1ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.08μs 0.662ns 2.56ns 0.0103 0 0 768 B
#3075 RunOnMethodBegin net472 1.19μs 2.42ns 9.36ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 1.03μs 1.2ns 4.65ns 0.0104 0 0 768 B

andrewlock avatar Aug 20 '22 22:08 andrewlock

Code Coverage Report :bar_chart:

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

master #3075 Change
Lines 16895 / 23280 16934 / 23477
Lines % 73% 72% 0% :heavy_check_mark:
Branches 10083 / 14362 10118 / 14496
Branches % 70% 70% 0% :heavy_check_mark:
Complexity 15458 15594 136 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :heavy_check_mark:

master #3075 Change
Lines % 73% 72% 0% :heavy_check_mark:
Branches % 70% 70% 0% :heavy_check_mark:
Complexity 15458 15594 136 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.XUnit.XUnitTestRunnerRunAsyncIntegration -25% :no_entry: -20% :no_entry: 6 :no_entry:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.XUnit.XUnitIntegration -23% :no_entry: -41% :no_entry: 32 :no_entry:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.NUnit.NUnitIntegration -16% :no_entry: -26% :no_entry: 32 :no_entry:
Datadog.Trace.Ci.CIVisibility -6% :no_entry: -1% :warning: 15 :no_entry:
Datadog.Trace.Ci.GitInfo 5% :heavy_check_mark: 8% :heavy_check_mark: 0 :heavy_check_mark:

The following classes were added in #3075:

File Line coverage Branch coverage Complexity
Datadog.Trace.Ci.SkippeableTest 0% 0% 3
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.NUnit.NUnitWorkItemIntegration 38% 71% 14

View the full reports for further details:

andrewlock avatar Aug 20 '22 22:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.249
  • 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 765μs 353ns 1.37μs 0.365 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 455μs 197ns 709ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 711μs 363ns 1.41μs 0.355 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 477μs 268ns 1μs 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.249 226.60 181.44

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 182ns 0.16ns 0.6ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.272ns 1.05ns 0.00578 0 0 424 B
master AllCycleMoreComplexBody net472 227ns 0.22ns 0.825ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 235ns 0.251ns 0.972ns 0.00551 0 0 400 B
master BodyExtractorSimpleBody net472 255ns 0.294ns 1.1ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 230ns 0.216ns 0.779ns 0.00369 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.2μs 13.4ns 50.1ns 1.2 0.0214 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 16.7ns 64.8ns 0.0904 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 191ns 1.01ns 5.03ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.273ns 1.02ns 0.00587 0 0 424 B
#3075 AllCycleMoreComplexBody net472 181ns 0.11ns 0.427ns 0.0638 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.308ns 1.19ns 0.00542 0 0 400 B
#3075 BodyExtractorSimpleBody net472 251ns 0.168ns 0.65ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 223ns 0.28ns 1.05ns 0.00373 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.3μs 13.2ns 51.1ns 1.21 0.0215 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 14.9ns 57.9ns 0.0913 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 181μs 103ns 400ns 0.18 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 178μs 109ns 421ns 0.266 0 0 20.33 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.53μs 0.697ns 2.51ns 0.126 0.000762 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.25μs 0.413ns 1.6ns 0.0107 0 0 824 B
#3075 ExecuteNonQuery net472 1.53μs 0.37ns 1.33ns 0.126 0.000766 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.35μs 0.439ns 1.64ns 0.0106 0 0 824 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.24μs 0.601ns 2.25ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.4μs 0.521ns 2.02ns 0.0133 0 0 984 B
master CallElasticsearchAsync net472 2.37μs 0.957ns 3.71ns 0.18 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.42μs 0.434ns 1.68ns 0.015 0 0 1.1 KB
#3075 CallElasticsearch net472 2.27μs 0.75ns 2.7ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.35μs 0.828ns 3.21ns 0.0129 0 0 984 B
#3075 CallElasticsearchAsync net472 2.42μs 0.611ns 2.29ns 0.18 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.45μs 0.705ns 2.73ns 0.0153 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.37μs 3.41ns 13.2ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.55μs 2.76ns 10.7ns 0.0163 0 0 1.22 KB
#3075 ExecuteAsync net472 2.44μs 7.34ns 28.4ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.56μs 3.02ns 11.3ns 0.0163 0 0 1.22 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μs 9.14ns 35.4ns 0.392 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.17μs 4.91ns 19ns 0.0311 0 0 2.36 KB
#3075 SendAsync net472 4.92μs 14.6ns 54.6ns 0.393 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.15μs 6.95ns 26.9ns 0.0312 0 0 2.36 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 2.85μs 1.07ns 4.14ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.31μs 0.835ns 2.89ns 0.0231 0 0 1.73 KB
#3075 EnrichedLog net472 2.85μs 1.01ns 3.92ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.41μs 0.614ns 2.38ns 0.0235 0 0 1.73 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 148μs 51.8ns 201ns 0.67 0.223 0 4.5 KB
master EnrichedLog netcoreapp3.1 113μs 107ns 415ns 0.0563 0 0 4.38 KB
#3075 EnrichedLog net472 148μs 141ns 544ns 0.679 0.226 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 113μs 102ns 394ns 0 0 0 4.38 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.42μs 4.87ns 18.2ns 0.543 0.00272 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.14μs 8.88ns 34.4ns 0.0517 0 0 3.8 KB
#3075 EnrichedLog net472 5.36μs 13.5ns 50.4ns 0.545 0.00266 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.26μs 9.35ns 36.2ns 0.0506 0 0 3.8 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.01μs 0.768ns 2.88ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.61μs 0.319ns 1.2ns 0.0161 0 0 1.21 KB
#3075 SendReceive net472 1.96μs 0.981ns 3.8ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.7μs 0.446ns 1.61ns 0.0163 0 0 1.21 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.66μs 1.71ns 6.64ns 0.329 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.13μs 1.4ns 5.22ns 0.0227 0 0 1.69 KB
#3075 EnrichedLog net472 4.74μs 1.9ns 7.36ns 0.328 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.13μs 0.837ns 3.13ns 0.0228 0 0 1.69 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 871ns 1.03ns 3.99ns 0.105 0 0 658 B
master StartFinishSpan netcoreapp3.1 749ns 0.616ns 2.3ns 0.00894 0 0 648 B
master StartFinishScope net472 1.13μs 1.21ns 4.51ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 884ns 0.542ns 2.1ns 0.0106 0 0 768 B
#3075 StartFinishSpan net472 882ns 0.799ns 3.09ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 731ns 0.548ns 2.05ns 0.00877 0 0 648 B
#3075 StartFinishScope net472 1.09μs 1.73ns 6.69ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 942ns 0.499ns 1.87ns 0.0103 0 0 768 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.22μs 1.38ns 5.35ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.01μs 0.778ns 2.91ns 0.0101 0 0 768 B
#3075 RunOnMethodBegin net472 1.23μs 1.51ns 5.84ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 968ns 0.591ns 2.29ns 0.0101 0 0 768 B

andrewlock avatar Aug 22 '22 08:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 739μs 265ns 991ns 0.37 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 456μs 144ns 540ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 712μs 561ns 2.17μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 463μs 266ns 1.03μs 0 0 0 2.58 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 182ns 0.145ns 0.524ns 0.0675 9.2E-05 0 425 B
master AllCycleSimpleBody netcoreapp3.1 236ns 0.212ns 0.792ns 0.00577 0 0 424 B
master AllCycleMoreComplexBody net472 182ns 0.791ns 3.06ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 237ns 0.264ns 1.02ns 0.00545 0 0 400 B
master BodyExtractorSimpleBody net472 261ns 0.238ns 0.92ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 218ns 0.294ns 1.14ns 0.00373 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.4μs 7.14ns 26.7ns 1.21 0.0215 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.4μs 14.3ns 53.6ns 0.0928 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 187ns 0.218ns 0.846ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.338ns 1.31ns 0.00568 0 0 424 B
#3075 AllCycleMoreComplexBody net472 185ns 0.124ns 0.463ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 235ns 0.299ns 1.16ns 0.0054 0 0 400 B
#3075 BodyExtractorSimpleBody net472 255ns 0.582ns 2.18ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 235ns 1.15ns 4.88ns 0.00369 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.6μs 9.62ns 36ns 1.21 0.0219 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 12.5ns 48.4ns 0.0908 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 208ns 777ns 0.181 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 179μs 86.4ns 335ns 0.179 0 0 20.33 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.52μs 0.725ns 2.71ns 0.126 0.000742 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.32μs 0.33ns 1.24ns 0.0112 0 0 824 B
#3075 ExecuteNonQuery net472 1.64μs 0.4ns 1.44ns 0.126 0.000822 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.25μs 0.444ns 1.66ns 0.0113 0 0 824 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.23μs 0.532ns 1.92ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.38μs 0.794ns 2.86ns 0.0131 0 0 984 B
master CallElasticsearchAsync net472 2.4μs 1.08ns 4.19ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.48μs 0.549ns 2.13ns 0.0148 0 0 1.1 KB
#3075 CallElasticsearch net472 2.21μs 0.481ns 1.8ns 0.158 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.39μs 0.784ns 3.04ns 0.0131 0 0 984 B
#3075 CallElasticsearchAsync net472 2.28μs 1.22ns 4.4ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.51μs 0.614ns 2.38ns 0.0151 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.3μs 7.29ns 28.2ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.52μs 4.8ns 18.6ns 0.0166 0 0 1.22 KB
#3075 ExecuteAsync net472 2.31μs 7.8ns 29.2ns 0.199 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.54μs 3.69ns 14.3ns 0.017 0 0 1.22 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 4.91μs 15.2ns 58.8ns 0.392 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.15μs 3.97ns 14.8ns 0.0319 0 0 2.36 KB
#3075 SendAsync net472 4.97μs 18.5ns 69.1ns 0.394 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.2μs 9.02ns 34.9ns 0.0329 0 0 2.36 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 2.75μs 0.677ns 2.62ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.37μs 0.565ns 2.11ns 0.0232 0 0 1.73 KB
#3075 EnrichedLog net472 2.79μs 2.1ns 8.15ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.33μs 0.908ns 3.27ns 0.0232 0 0 1.73 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 148μs 84.9ns 329ns 0.661 0.22 0 4.5 KB
master EnrichedLog netcoreapp3.1 115μs 270ns 1.05μs 0.0571 0 0 4.38 KB
#3075 EnrichedLog net472 153μs 130ns 503ns 0.695 0.232 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 117μs 206ns 799ns 0.0584 0 0 4.38 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.35μs 18ns 69.9ns 0.545 0.00265 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.09μs 9.07ns 33.9ns 0.0516 0 0 3.8 KB
#3075 EnrichedLog net472 5.34μs 11.9ns 44.5ns 0.543 0.00269 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.09μs 10.3ns 39.9ns 0.0527 0 0 3.8 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.03μs 1.52ns 5.9ns 0.194 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.65μs 0.571ns 2.14ns 0.0165 0 0 1.21 KB
#3075 SendReceive net472 1.94μs 1.73ns 6.72ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.73μs 1.15ns 4.3ns 0.0164 0 0 1.21 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.7μs 1.29ns 5ns 0.329 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.1μs 0.798ns 2.99ns 0.0225 0 0 1.69 KB
#3075 EnrichedLog net472 4.79μs 1.48ns 5.73ns 0.329 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.18μs 1.27ns 4.38ns 0.0228 0 0 1.69 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 821ns 0.876ns 3.39ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 737ns 0.519ns 1.94ns 0.00882 0 0 648 B
master StartFinishScope net472 1.13μs 0.524ns 2.03ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 902ns 0.846ns 3.27ns 0.0104 0 0 768 B
#3075 StartFinishSpan net472 807ns 0.348ns 1.3ns 0.105 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 789ns 0.236ns 0.884ns 0.00886 0 0 648 B
#3075 StartFinishScope net472 1.03μs 0.248ns 0.962ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 962ns 0.351ns 1.32ns 0.0106 0 0 768 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.22μs 1.28ns 4.78ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.04μs 0.376ns 1.41ns 0.0103 0 0 768 B
#3075 RunOnMethodBegin net472 1.21μs 0.366ns 1.32ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 999ns 0.371ns 1.39ns 0.0105 0 0 768 B

andrewlock avatar Aug 22 '22 13:08 andrewlock

Code Coverage Report :bar_chart:

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

master #3075 Change
Lines 16874 / 23281 16873 / 23493
Lines % 72% 72% -1% :warning:
Branches 10067 / 14362 10098 / 14504
Branches % 70% 70% 0% :heavy_check_mark:
Complexity 15458 15603 145 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :warning:

master #3075 Change
Lines % 72% 72% -1% :warning:
Branches % 70% 70% 0% :heavy_check_mark:
Complexity 15458 15603 145 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.Ci.Coverage.CoverageReporter -50% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Ci.Coverage.CoverageContextContainer -31% :no_entry: 0% :heavy_check_mark: 0 :heavy_check_mark:
Datadog.Trace.Ci.Coverage.CoverageEventHandler -30% :no_entry: -10% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.XUnit.XUnitTestRunnerRunAsyncIntegration -25% :no_entry: -20% :no_entry: 6 :no_entry:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.XUnit.XUnitIntegration -21% :no_entry: -41% :no_entry: 32 :no_entry:
Datadog.Trace.Ci.GitInfo -17% :no_entry: -11% :no_entry: 0 :heavy_check_mark:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.NUnit.NUnitIntegration -16% :no_entry: -26% :no_entry: 32 :no_entry:
Datadog.Trace.Ci.Coverage.DefaultCoverageEventHandler -10% :no_entry: -38% :no_entry: 1 :no_entry:
Datadog.Trace.Ci.CIVisibility -6% :no_entry: -1% :warning: 15 :no_entry:

The following classes were added in #3075:

File Line coverage Branch coverage Complexity
Datadog.Trace.Ci.SkippeableTest 0% 0% 3
Datadog.Trace.ClrProfiler.AutoInstrumentation.Testing.NUnit.NUnitWorkItemIntegration 38% 71% 14

View the full reports for further details:

andrewlock avatar Aug 22 '22 14:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.120
  • 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 732μs 393ns 1.52μs 0.361 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 466μs 152ns 569ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 715μs 357ns 1.38μs 0.355 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 464μs 207ns 800ns 0 0 0 2.58 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 183ns 0.203ns 0.788ns 0.0675 9.17E-05 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.244ns 0.945ns 0.00583 0 0 424 B
master AllCycleMoreComplexBody net472 198ns 0.974ns 4.02ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 233ns 0.294ns 1.14ns 0.00551 0 0 400 B
master BodyExtractorSimpleBody net472 257ns 0.252ns 0.974ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 231ns 0.401ns 1.44ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.6μs 16ns 59.9ns 1.21 0.0218 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 11.8μs 14.8ns 57.4ns 0.0883 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 181ns 0.156ns 0.585ns 0.0675 9.18E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.34ns 1.32ns 0.00578 0 0 424 B
#3075 AllCycleMoreComplexBody net472 181ns 0.124ns 0.48ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 232ns 0.274ns 1.06ns 0.00542 0 0 400 B
#3075 BodyExtractorSimpleBody net472 254ns 0.248ns 0.961ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 232ns 0.296ns 1.15ns 0.00373 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 6.6ns 25.6ns 1.21 0.0218 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.5μs 9.79ns 37.9ns 0.0871 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 179μs 111ns 431ns 0.267 0 0 20.33 KB
#3075 SendRequest net472 0.00237ns 0.00163ns 0.00632ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 178μs 111ns 429ns 0.177 0 0 20.33 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.59μs 1.2ns 4.64ns 0.126 0.000794 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.24μs 0.678ns 2.54ns 0.0112 0 0 824 B
#3075 ExecuteNonQuery net472 1.55μs 0.703ns 2.72ns 0.126 0.00077 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.21μs 0.607ns 2.27ns 0.0108 0 0 824 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.23μs 0.764ns 2.96ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.41μs 0.971ns 3.76ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.3μs 0.515ns 2ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.46μs 1.29ns 4.84ns 0.0148 0 0 1.1 KB
#3075 CallElasticsearch net472 2.17μs 0.426ns 1.65ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.36μs 0.73ns 2.63ns 0.0135 0 0 984 B
#3075 CallElasticsearchAsync net472 2.35μs 1.43ns 5.53ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.41μs 0.785ns 3.04ns 0.0148 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.3μs 6.78ns 26.3ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.55μs 3.47ns 13ns 0.0162 0 0 1.22 KB
#3075 ExecuteAsync net472 2.36μs 7.36ns 28.5ns 0.2 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.57μs 3.59ns 13.9ns 0.0163 0 0 1.22 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 4.84μs 11.2ns 41.8ns 0.394 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.09μs 7.4ns 27.7ns 0.0325 0 0 2.36 KB
#3075 SendAsync net472 4.99μs 16.8ns 65.1ns 0.392 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.27μs 10.8ns 37.4ns 0.0325 0 0 2.36 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 2.86μs 0.665ns 2.49ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.38μs 1.09ns 4.07ns 0.0238 0 0 1.73 KB
#3075 EnrichedLog net472 2.83μs 1.19ns 4.28ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.45μs 0.697ns 2.7ns 0.0233 0 0 1.73 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 148μs 258ns 999ns 0.668 0.223 0 4.5 KB
master EnrichedLog netcoreapp3.1 113μs 145ns 563ns 0 0 0 4.38 KB
#3075 EnrichedLog net472 148μs 81ns 292ns 0.67 0.223 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 113μs 142ns 533ns 0.057 0 0 4.38 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.17μs 12.7ns 49.2ns 0.546 0.00256 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.27μs 7.04ns 26.3ns 0.0513 0 0 3.8 KB
#3075 EnrichedLog net472 5.4μs 14.1ns 52.8ns 0.545 0.00267 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.02μs 11.3ns 43.9ns 0.0521 0 0 3.8 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.04μs 0.789ns 3.06ns 0.193 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.64μs 0.878ns 3.17ns 0.0164 0 0 1.21 KB
#3075 SendReceive net472 2.13μs 0.487ns 1.82ns 0.193 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.68μs 0.956ns 3.7ns 0.016 0 0 1.21 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.69μs 1.88ns 7.3ns 0.329 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.21μs 1.46ns 5.46ns 0.023 0 0 1.69 KB
#3075 EnrichedLog net472 4.85μs 1.8ns 6.75ns 0.33 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.08μs 1.23ns 4.44ns 0.0225 0 0 1.69 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 859ns 0.545ns 2.11ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 767ns 0.252ns 0.909ns 0.00892 0 0 648 B
master StartFinishScope net472 1.08μs 0.523ns 1.96ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 918ns 0.242ns 0.939ns 0.0105 0 0 768 B
#3075 StartFinishSpan net472 815ns 0.563ns 2.18ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 734ns 0.208ns 0.719ns 0.00895 0 0 648 B
#3075 StartFinishScope net472 1.01μs 0.418ns 1.51ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 897ns 0.292ns 1.05ns 0.0104 0 0 768 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.TraceAnnotationsBenchmark.RunOnMethodBegin‑netcoreapp3.1 1.120 1,071.43 956.77

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net472 1.21μs 0.459ns 1.78ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.07μs 0.22ns 0.762ns 0.0107 0 0 768 B
#3075 RunOnMethodBegin net472 1.19μs 0.45ns 1.62ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 957ns 0.316ns 1.22ns 0.0106 0 0 768 B

andrewlock avatar Aug 23 '22 10:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 732μs 393ns 1.52μs 0.361 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 466μs 152ns 569ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 714μs 340ns 1.32μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 468μs 639ns 2.48μs 0 0 0 2.59 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 183ns 0.203ns 0.788ns 0.0675 9.17E-05 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.244ns 0.945ns 0.00583 0 0 424 B
master AllCycleMoreComplexBody net472 198ns 0.974ns 4.02ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 233ns 0.294ns 1.14ns 0.00551 0 0 400 B
master BodyExtractorSimpleBody net472 257ns 0.252ns 0.974ns 0.0574 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 231ns 0.401ns 1.44ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.6μs 16ns 59.9ns 1.21 0.0218 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 11.8μs 14.8ns 57.4ns 0.0883 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 182ns 0.0687ns 0.248ns 0.0676 9.15E-05 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 237ns 0.45ns 1.74ns 0.00574 0 0 424 B
#3075 AllCycleMoreComplexBody net472 179ns 0.142ns 0.548ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.248ns 0.927ns 0.00543 0 0 400 B
#3075 BodyExtractorSimpleBody net472 250ns 0.225ns 0.871ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 223ns 0.238ns 0.921ns 0.0037 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.2μs 11.5ns 42.9ns 1.21 0.0213 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.6μs 16.2ns 60.7ns 0.0879 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 111ns 431ns 0.267 0 0 20.33 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 178μs 163ns 631ns 0.266 0 0 20.33 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.59μs 1.2ns 4.64ns 0.126 0.000794 0 794 B
master ExecuteNonQuery netcoreapp3.1 1.24μs 0.678ns 2.54ns 0.0112 0 0 824 B
#3075 ExecuteNonQuery net472 1.51μs 0.556ns 2.08ns 0.126 0.000755 0 794 B
#3075 ExecuteNonQuery netcoreapp3.1 1.32μs 0.653ns 2.44ns 0.0106 0 0 824 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.23μs 0.764ns 2.96ns 0.159 0 0 1 KB
master CallElasticsearch netcoreapp3.1 1.41μs 0.971ns 3.76ns 0.0132 0 0 984 B
master CallElasticsearchAsync net472 2.3μs 0.515ns 2ns 0.181 0 0 1.14 KB
master CallElasticsearchAsync netcoreapp3.1 1.46μs 1.29ns 4.84ns 0.0148 0 0 1.1 KB
#3075 CallElasticsearch net472 2.3μs 1.06ns 4.1ns 0.159 0 0 1 KB
#3075 CallElasticsearch netcoreapp3.1 1.42μs 1.73ns 6.7ns 0.0128 0 0 984 B
#3075 CallElasticsearchAsync net472 2.34μs 1.26ns 4.87ns 0.181 0 0 1.14 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.5μs 1.2ns 4.65ns 0.015 0 0 1.1 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.3μs 6.78ns 26.3ns 0.2 0 0 1.26 KB
master ExecuteAsync netcoreapp3.1 1.55μs 3.47ns 13ns 0.0162 0 0 1.22 KB
#3075 ExecuteAsync net472 2.33μs 7.63ns 29.5ns 0.199 0 0 1.26 KB
#3075 ExecuteAsync netcoreapp3.1 1.54μs 3.85ns 14.4ns 0.0165 0 0 1.22 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 4.84μs 11.2ns 41.8ns 0.394 0 0 2.48 KB
master SendAsync netcoreapp3.1 3.09μs 7.4ns 27.7ns 0.0325 0 0 2.36 KB
#3075 SendAsync net472 4.93μs 15.8ns 61.2ns 0.394 0 0 2.48 KB
#3075 SendAsync netcoreapp3.1 3.15μs 7.4ns 28.6ns 0.0316 0 0 2.36 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 2.86μs 0.665ns 2.49ns 0.263 0 0 1.66 KB
master EnrichedLog netcoreapp3.1 2.38μs 1.09ns 4.07ns 0.0238 0 0 1.73 KB
#3075 EnrichedLog net472 2.76μs 2.18ns 8.45ns 0.263 0 0 1.66 KB
#3075 EnrichedLog netcoreapp3.1 2.39μs 0.807ns 2.91ns 0.0234 0 0 1.73 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 148μs 258ns 999ns 0.668 0.223 0 4.5 KB
master EnrichedLog netcoreapp3.1 113μs 145ns 563ns 0 0 0 4.38 KB
#3075 EnrichedLog net472 149μs 123ns 461ns 0.662 0.221 0 4.5 KB
#3075 EnrichedLog netcoreapp3.1 113μs 99.5ns 372ns 0 0 0 4.38 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.17μs 12.7ns 49.2ns 0.546 0.00256 0 3.43 KB
master EnrichedLog netcoreapp3.1 4.27μs 7.04ns 26.3ns 0.0513 0 0 3.8 KB
#3075 EnrichedLog net472 5.3μs 18.6ns 72.2ns 0.544 0.00264 0 3.43 KB
#3075 EnrichedLog netcoreapp3.1 4.22μs 5.39ns 20.9ns 0.0508 0 0 3.8 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.04μs 0.789ns 3.06ns 0.193 0 0 1.22 KB
master SendReceive netcoreapp3.1 1.64μs 0.878ns 3.17ns 0.0164 0 0 1.21 KB
#3075 SendReceive net472 2μs 1.26ns 4.71ns 0.194 0 0 1.22 KB
#3075 SendReceive netcoreapp3.1 1.68μs 0.612ns 2.12ns 0.0168 0 0 1.21 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.69μs 1.88ns 7.3ns 0.329 0 0 2.08 KB
master EnrichedLog netcoreapp3.1 4.21μs 1.46ns 5.46ns 0.023 0 0 1.69 KB
#3075 EnrichedLog net472 4.79μs 0.91ns 3.52ns 0.329 0 0 2.08 KB
#3075 EnrichedLog netcoreapp3.1 4.08μs 0.963ns 3.47ns 0.0224 0 0 1.69 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 859ns 0.545ns 2.11ns 0.104 0 0 658 B
master StartFinishSpan netcoreapp3.1 767ns 0.252ns 0.909ns 0.00892 0 0 648 B
master StartFinishScope net472 1.08μs 0.523ns 1.96ns 0.117 0 0 738 B
master StartFinishScope netcoreapp3.1 918ns 0.242ns 0.939ns 0.0105 0 0 768 B
#3075 StartFinishSpan net472 829ns 1.52ns 5.87ns 0.104 0 0 658 B
#3075 StartFinishSpan netcoreapp3.1 721ns 0.304ns 1.18ns 0.00867 0 0 648 B
#3075 StartFinishScope net472 1.13μs 0.435ns 1.57ns 0.117 0 0 738 B
#3075 StartFinishScope netcoreapp3.1 891ns 0.276ns 1.07ns 0.0102 0 0 768 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.21μs 0.459ns 1.78ns 0.117 0 0 738 B
master RunOnMethodBegin netcoreapp3.1 1.07μs 0.22ns 0.762ns 0.0107 0 0 768 B
#3075 RunOnMethodBegin net472 1.21μs 0.218ns 0.786ns 0.117 0 0 738 B
#3075 RunOnMethodBegin netcoreapp3.1 1.06μs 0.338ns 1.22ns 0.0104 0 0 768 B

andrewlock avatar Aug 23 '22 11:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 712μs 263ns 983ns 0.353 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 463μs 390ns 1.51μs 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 714μs 430ns 1.61μs 0.355 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 456μs 270ns 975ns 0 0 0 2.58 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 188ns 0.385ns 1.49ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 238ns 0.418ns 1.51ns 0.00577 0 0 424 B
master AllCycleMoreComplexBody net472 208ns 0.858ns 3.32ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 242ns 0.66ns 2.56ns 0.00545 0 0 400 B
master BodyExtractorSimpleBody net472 263ns 0.64ns 2.48ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 233ns 0.748ns 2.9ns 0.00372 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.7μs 25.7ns 99.6ns 1.21 0.0218 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.6μs 26.6ns 99.5ns 0.0888 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 190ns 0.406ns 1.57ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 240ns 0.585ns 2.27ns 0.00579 0 0 424 B
#3075 AllCycleMoreComplexBody net472 192ns 0.815ns 3.16ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 238ns 0.492ns 1.91ns 0.00547 0 0 400 B
#3075 BodyExtractorSimpleBody net472 269ns 0.776ns 3.01ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 235ns 0.583ns 2.26ns 0.00366 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.8μs 44.5ns 172ns 1.2 0.0147 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.8μs 30.7ns 119ns 0.089 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 182μs 229ns 856ns 0.183 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 182μs 154ns 598ns 0.271 0 0 20.57 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.03ns 3.87ns 0.15 0.000895 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.53μs 9.4ns 86.7ns 0.0125 0 0 936 B
#3075 ExecuteNonQuery net472 1.83μs 0.644ns 2.49ns 0.15 0.00092 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.44μs 0.712ns 2.66ns 0.0123 0 0 936 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.49μs 1.53ns 5.92ns 0.183 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.54μs 0.673ns 2.33ns 0.0147 0 0 1.1 KB
master CallElasticsearchAsync net472 2.59μs 1.87ns 6.73ns 0.205 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.63μs 0.987ns 3.82ns 0.0162 0 0 1.22 KB
#3075 CallElasticsearch net472 2.45μs 0.828ns 2.98ns 0.184 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.53μs 0.611ns 2.37ns 0.0146 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.49μs 1ns 3.88ns 0.204 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.7μs 6.22ns 23.3ns 0.016 0 0 1.22 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.69μs 4.78ns 18.5ns 0.224 0 0 1.41 KB
master ExecuteAsync netcoreapp3.1 1.7μs 5.3ns 20.5ns 0.0183 0 0 1.34 KB
#3075 ExecuteAsync net472 2.63μs 6.55ns 25.4ns 0.224 0 0 1.41 KB
#3075 ExecuteAsync netcoreapp3.1 1.75μs 1.06ns 3.97ns 0.0179 0 0 1.34 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.68μs 20.3ns 78.7ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.53μs 5.63ns 21.8ns 0.0349 0 0 2.6 KB
#3075 SendAsync net472 5.83μs 5.25ns 20.3ns 0.44 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.7μs 2.74ns 10.3ns 0.0351 0 0 2.6 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 0.845ns 3.16ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.49μs 4.78ns 18.5ns 0.0255 0 0 1.85 KB
#3075 EnrichedLog net472 3.18μs 1.36ns 4.9ns 0.288 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.48μs 1.19ns 4.44ns 0.025 0 0 1.85 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 148μs 204ns 791ns 0.677 0.226 0 4.65 KB
master EnrichedLog netcoreapp3.1 114μs 93ns 348ns 0.057 0 0 4.49 KB
#3075 EnrichedLog net472 151μs 40.2ns 156ns 0.684 0.228 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 115μs 221ns 857ns 0.0579 0 0 4.49 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.62μs 4.37ns 16.9ns 0.57 0.00277 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.31μs 8.3ns 31ns 0.0532 0 0 3.91 KB
#3075 EnrichedLog net472 5.64μs 4.93ns 19.1ns 0.569 0.00283 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.42μs 7.5ns 27.1ns 0.053 0 0 3.91 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.25μs 0.45ns 1.68ns 0.217 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.77μs 0.496ns 1.85ns 0.0178 0 0 1.32 KB
#3075 SendReceive net472 2.27μs 0.953ns 3.57ns 0.218 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.83μs 0.583ns 2.02ns 0.0174 0 0 1.32 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.19μs 1.76ns 6.83ns 0.353 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.33μs 1.38ns 4.8ns 0.0236 0 0 1.8 KB
#3075 EnrichedLog net472 5.09μs 1.72ns 5.97ns 0.354 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.37μs 1.9ns 6.85ns 0.0238 0 0 1.8 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.09μs 0.578ns 2.24ns 0.129 0 0 810 B
master StartFinishSpan netcoreapp3.1 908ns 0.547ns 2.05ns 0.00996 0 0 760 B
master StartFinishScope net472 1.36μs 0.463ns 1.73ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.09μs 0.533ns 2.06ns 0.012 0 0 880 B
#3075 StartFinishSpan net472 1.16μs 1.03ns 3.87ns 0.129 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 911ns 0.491ns 1.84ns 0.01 0 0 760 B
#3075 StartFinishScope net472 1.42μs 0.816ns 3.16ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.05μs 0.54ns 2.02ns 0.012 0 0 880 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.45μs 0.606ns 2.35ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.15μs 1.11ns 4.31ns 0.0121 0 0 880 B
#3075 RunOnMethodBegin net472 1.49μs 1.36ns 5.25ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.21μs 0.67ns 2.51ns 0.0119 0 0 880 B

andrewlock avatar Aug 28 '22 22:08 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.116
  • 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 717μs 371ns 1.44μs 0.355 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 463μs 498ns 1.86μs 0 0 0 2.59 KB
#3075 WriteAndFlushEnrichedTraces net472 714μs 334ns 1.25μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 484μs 506ns 1.96μs 0 0 0 2.58 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 187ns 0.919ns 3.9ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.371ns 1.44ns 0.00574 0 0 424 B
master AllCycleMoreComplexBody net472 196ns 1.01ns 4.64ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 232ns 0.159ns 0.616ns 0.00545 0 0 400 B
master BodyExtractorSimpleBody net472 273ns 0.305ns 1.14ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 220ns 0.234ns 0.876ns 0.00374 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.6μs 10.7ns 41.6ns 1.2 0.0219 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 16.9ns 65.3ns 0.085 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 187ns 0.279ns 1.08ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.229ns 0.826ns 0.00576 0 0 424 B
#3075 AllCycleMoreComplexBody net472 205ns 0.352ns 1.36ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.327ns 1.18ns 0.00552 0 0 400 B
#3075 BodyExtractorSimpleBody net472 270ns 0.393ns 1.52ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 220ns 0.328ns 1.27ns 0.00365 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.1μs 13.3ns 51.6ns 1.21 0.0211 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 9.65ns 37.4ns 0.0895 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 136ns 526ns 0.273 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 182μs 202ns 755ns 0.182 0 0 20.58 KB
Benchmarks.Trace.DbCommandBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑net472 1.116 1,965.57 1,760.65

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net472 1.97μs 0.688ns 2.66ns 0.15 0.000973 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.42μs 0.471ns 1.76ns 0.0127 0 0 936 B
#3075 ExecuteNonQuery net472 1.76μs 0.583ns 2.18ns 0.15 0.000874 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.48μs 0.623ns 2.25ns 0.0125 0 0 936 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.58μs 1.36ns 5.08ns 0.183 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.66μs 0.502ns 1.81ns 0.015 0 0 1.1 KB
master CallElasticsearchAsync net472 2.71μs 1.22ns 4.41ns 0.204 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.67μs 0.824ns 3.08ns 0.016 0 0 1.22 KB
#3075 CallElasticsearch net472 2.61μs 1.12ns 4.33ns 0.183 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.55μs 0.683ns 2.64ns 0.0147 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.54μs 0.81ns 3.14ns 0.204 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.66μs 0.409ns 1.42ns 0.0167 0 0 1.22 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.65μs 5.58ns 21.6ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.69μs 3.7ns 14.3ns 0.0184 0 0 1.34 KB
#3075 ExecuteAsync net472 2.61μs 7ns 27.1ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.72μs 2.28ns 8.84ns 0.0181 0 0 1.34 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.74μs 6.96ns 26.1ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.57μs 10.1ns 37.9ns 0.0354 0 0 2.6 KB
#3075 SendAsync net472 5.81μs 10.1ns 39.2ns 0.439 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.62μs 6.9ns 26.7ns 0.0346 0 0 2.6 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 2.76ns 10.3ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.48μs 0.733ns 2.74ns 0.0248 0 0 1.85 KB
#3075 EnrichedLog net472 3.1μs 1.26ns 4.37ns 0.287 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.53μs 0.681ns 2.46ns 0.0253 0 0 1.85 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 161ns 625ns 0.682 0.227 0 4.65 KB
master EnrichedLog netcoreapp3.1 115μs 180ns 698ns 0.0574 0 0 4.49 KB
#3075 EnrichedLog net472 152μs 89.5ns 347ns 0.678 0.226 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 116μs 206ns 770ns 0.0579 0 0 4.49 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.62μs 13.7ns 53.1ns 0.569 0.00283 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.49μs 9.86ns 38.2ns 0.0533 0 0 3.91 KB
#3075 EnrichedLog net472 5.62μs 8.1ns 31.4ns 0.568 0.00283 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.45μs 7.14ns 26.7ns 0.0539 0 0 3.91 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 3.21ns 12.4ns 0.218 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.8μs 0.798ns 2.98ns 0.018 0 0 1.32 KB
#3075 SendReceive net472 2.36μs 1.18ns 4.57ns 0.217 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.88μs 0.414ns 1.55ns 0.0179 0 0 1.32 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.13μs 5.51ns 20.6ns 0.352 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.46μs 2.24ns 8.66ns 0.0246 0 0 1.8 KB
#3075 EnrichedLog net472 5.06μs 1.37ns 4.92ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.33μs 2.53ns 9.45ns 0.0237 0 0 1.8 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.09μs 0.18ns 0.65ns 0.129 0 0 810 B
master StartFinishSpan netcoreapp3.1 977ns 0.256ns 0.992ns 0.0103 0 0 760 B
master StartFinishScope net472 1.41μs 0.323ns 1.21ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.13μs 0.391ns 1.46ns 0.0118 0 0 880 B
#3075 StartFinishSpan net472 1.18μs 0.436ns 1.69ns 0.129 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 932ns 1.8ns 6.73ns 0.0102 0 0 760 B
#3075 StartFinishScope net472 1.41μs 0.361ns 1.3ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.1μs 0.421ns 1.58ns 0.0116 0 0 880 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.5μs 0.229ns 0.888ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.12μs 0.293ns 1.1ns 0.0118 0 0 880 B
#3075 RunOnMethodBegin net472 1.48μs 0.331ns 1.28ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.21μs 0.801ns 3ns 0.0121 0 0 880 B

andrewlock avatar Sep 05 '22 22:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 717μs 371ns 1.44μs 0.355 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 463μs 498ns 1.86μs 0 0 0 2.59 KB
#3075 WriteAndFlushEnrichedTraces net472 715μs 492ns 1.84μs 0.355 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 450μs 144ns 540ns 0 0 0 2.58 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 187ns 0.919ns 3.9ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.371ns 1.44ns 0.00574 0 0 424 B
master AllCycleMoreComplexBody net472 196ns 1.01ns 4.64ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 232ns 0.159ns 0.616ns 0.00545 0 0 400 B
master BodyExtractorSimpleBody net472 273ns 0.305ns 1.14ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 220ns 0.234ns 0.876ns 0.00374 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.6μs 10.7ns 41.6ns 1.2 0.0219 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 16.9ns 65.3ns 0.085 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 183ns 0.174ns 0.675ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.365ns 1.41ns 0.00578 0 0 424 B
#3075 AllCycleMoreComplexBody net472 182ns 0.137ns 0.53ns 0.0638 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.322ns 1.25ns 0.00542 0 0 400 B
#3075 BodyExtractorSimpleBody net472 255ns 0.257ns 0.996ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 221ns 0.206ns 0.798ns 0.00376 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 46.6ns 175ns 1.21 0.0215 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.8μs 12.8ns 49.5ns 0.0896 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 136ns 526ns 0.273 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 185μs 234ns 906ns 0.185 0 0 20.57 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.97μs 0.688ns 2.66ns 0.15 0.000973 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.42μs 0.471ns 1.76ns 0.0127 0 0 936 B
#3075 ExecuteNonQuery net472 1.88μs 0.903ns 3.5ns 0.15 0.000933 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.47μs 0.431ns 1.61ns 0.0124 0 0 936 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.58μs 1.36ns 5.08ns 0.183 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.66μs 0.502ns 1.81ns 0.015 0 0 1.1 KB
master CallElasticsearchAsync net472 2.71μs 1.22ns 4.41ns 0.204 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.67μs 0.824ns 3.08ns 0.016 0 0 1.22 KB
#3075 CallElasticsearch net472 2.57μs 0.74ns 2.77ns 0.184 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.5μs 0.49ns 1.83ns 0.015 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.7μs 1.01ns 3.93ns 0.204 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.69μs 0.492ns 1.9ns 0.0162 0 0 1.22 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.65μs 5.58ns 21.6ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.69μs 3.7ns 14.3ns 0.0184 0 0 1.34 KB
#3075 ExecuteAsync net472 2.66μs 3.75ns 14.5ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.7μs 1.97ns 7.36ns 0.018 0 0 1.34 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.74μs 6.96ns 26.1ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.57μs 10.1ns 37.9ns 0.0354 0 0 2.6 KB
#3075 SendAsync net472 5.79μs 8.66ns 33.5ns 0.439 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.64μs 7.31ns 27.4ns 0.0349 0 0 2.6 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 2.76ns 10.3ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.48μs 0.733ns 2.74ns 0.0248 0 0 1.85 KB
#3075 EnrichedLog net472 3.02μs 3.06ns 11.8ns 0.287 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.54μs 0.76ns 2.85ns 0.0253 0 0 1.85 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 161ns 625ns 0.682 0.227 0 4.65 KB
master EnrichedLog netcoreapp3.1 115μs 180ns 698ns 0.0574 0 0 4.49 KB
#3075 EnrichedLog net472 150μs 175ns 678ns 0.678 0.226 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 115μs 170ns 638ns 0.0572 0 0 4.49 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.62μs 13.7ns 53.1ns 0.569 0.00283 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.49μs 9.86ns 38.2ns 0.0533 0 0 3.91 KB
#3075 EnrichedLog net472 5.61μs 8.77ns 31.6ns 0.567 0.00284 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.31μs 8.7ns 33.7ns 0.0536 0 0 3.91 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 3.21ns 12.4ns 0.218 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.8μs 0.798ns 2.98ns 0.018 0 0 1.32 KB
#3075 SendReceive net472 2.22μs 1.8ns 6.73ns 0.217 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.85μs 0.623ns 2.41ns 0.0176 0 0 1.32 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.13μs 5.51ns 20.6ns 0.352 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.46μs 2.24ns 8.66ns 0.0246 0 0 1.8 KB
#3075 EnrichedLog net472 5.01μs 3.45ns 13.4ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.31μs 1.1ns 3.98ns 0.0237 0 0 1.8 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.09μs 0.18ns 0.65ns 0.129 0 0 810 B
master StartFinishSpan netcoreapp3.1 977ns 0.256ns 0.992ns 0.0103 0 0 760 B
master StartFinishScope net472 1.41μs 0.323ns 1.21ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.13μs 0.391ns 1.46ns 0.0118 0 0 880 B
#3075 StartFinishSpan net472 1.17μs 0.668ns 2.59ns 0.128 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 914ns 0.45ns 1.74ns 0.0101 0 0 760 B
#3075 StartFinishScope net472 1.41μs 0.952ns 3.69ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.09μs 0.365ns 1.37ns 0.0119 0 0 880 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.5μs 0.229ns 0.888ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.12μs 0.293ns 1.1ns 0.0118 0 0 880 B
#3075 RunOnMethodBegin net472 1.51μs 0.303ns 1.13ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.14μs 0.258ns 0.931ns 0.012 0 0 880 B

andrewlock avatar Sep 05 '22 23:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 717μs 371ns 1.44μs 0.355 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 463μs 498ns 1.86μs 0 0 0 2.59 KB
#3075 WriteAndFlushEnrichedTraces net472 711μs 336ns 1.26μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 461μs 164ns 615ns 0 0 0 2.58 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 187ns 0.919ns 3.9ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.371ns 1.44ns 0.00574 0 0 424 B
master AllCycleMoreComplexBody net472 196ns 1.01ns 4.64ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 232ns 0.159ns 0.616ns 0.00545 0 0 400 B
master BodyExtractorSimpleBody net472 273ns 0.305ns 1.14ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 220ns 0.234ns 0.876ns 0.00374 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.6μs 10.7ns 41.6ns 1.2 0.0219 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 16.9ns 65.3ns 0.085 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 185ns 0.215ns 0.803ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 234ns 0.316ns 1.22ns 0.00577 0 0 424 B
#3075 AllCycleMoreComplexBody net472 190ns 1.07ns 7.07ns 0.0638 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.272ns 1.05ns 0.00554 0 0 400 B
#3075 BodyExtractorSimpleBody net472 255ns 0.24ns 0.899ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 226ns 0.2ns 0.723ns 0.00363 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.2μs 14.7ns 57.1ns 1.21 0.0212 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.2μs 11.8ns 44ns 0.0914 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 182μs 136ns 526ns 0.273 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 183μs 141ns 546ns 0.273 0 0 20.57 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.97μs 0.688ns 2.66ns 0.15 0.000973 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.42μs 0.471ns 1.76ns 0.0127 0 0 936 B
#3075 ExecuteNonQuery net472 1.84μs 0.452ns 1.75ns 0.15 0.000924 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.43μs 0.607ns 2.27ns 0.0128 0 0 936 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.58μs 1.36ns 5.08ns 0.183 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.66μs 0.502ns 1.81ns 0.015 0 0 1.1 KB
master CallElasticsearchAsync net472 2.71μs 1.22ns 4.41ns 0.204 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.67μs 0.824ns 3.08ns 0.016 0 0 1.22 KB
#3075 CallElasticsearch net472 2.52μs 0.776ns 3ns 0.182 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.51μs 0.991ns 3.71ns 0.0143 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.75μs 2.15ns 8.33ns 0.205 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.67μs 0.5ns 1.94ns 0.0166 0 0 1.22 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.65μs 5.58ns 21.6ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.69μs 3.7ns 14.3ns 0.0184 0 0 1.34 KB
#3075 ExecuteAsync net472 2.62μs 5.52ns 21.4ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.65μs 3.57ns 13.4ns 0.018 0 0 1.34 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.74μs 6.96ns 26.1ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.57μs 10.1ns 37.9ns 0.0354 0 0 2.6 KB
#3075 SendAsync net472 5.69μs 8.83ns 33ns 0.438 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.58μs 7.45ns 28.9ns 0.036 0 0 2.6 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 2.76ns 10.3ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.48μs 0.733ns 2.74ns 0.0248 0 0 1.85 KB
#3075 EnrichedLog net472 3.25μs 3.43ns 12.4ns 0.287 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.5μs 0.54ns 2.02ns 0.0256 0 0 1.85 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 161ns 625ns 0.682 0.227 0 4.65 KB
master EnrichedLog netcoreapp3.1 115μs 180ns 698ns 0.0574 0 0 4.49 KB
#3075 EnrichedLog net472 151μs 83.6ns 324ns 0.683 0.228 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 116μs 282ns 1.09μs 0.058 0 0 4.49 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.62μs 13.7ns 53.1ns 0.569 0.00283 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.49μs 9.86ns 38.2ns 0.0533 0 0 3.91 KB
#3075 EnrichedLog net472 5.71μs 14.6ns 54.6ns 0.569 0.00282 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.51μs 9.21ns 35.7ns 0.0534 0 0 3.91 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 3.21ns 12.4ns 0.218 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.8μs 0.798ns 2.98ns 0.018 0 0 1.32 KB
#3075 SendReceive net472 2.3μs 1.43ns 5.54ns 0.217 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.82μs 1.28ns 4.79ns 0.0182 0 0 1.32 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.13μs 5.51ns 20.6ns 0.352 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.46μs 2.24ns 8.66ns 0.0246 0 0 1.8 KB
#3075 EnrichedLog net472 5.04μs 3.02ns 10.9ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.45μs 3.29ns 12.3ns 0.0245 0 0 1.8 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.09μs 0.18ns 0.65ns 0.129 0 0 810 B
master StartFinishSpan netcoreapp3.1 977ns 0.256ns 0.992ns 0.0103 0 0 760 B
master StartFinishScope net472 1.41μs 0.323ns 1.21ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.13μs 0.391ns 1.46ns 0.0118 0 0 880 B
#3075 StartFinishSpan net472 1.17μs 0.479ns 1.86ns 0.128 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 937ns 0.314ns 1.18ns 0.0103 0 0 760 B
#3075 StartFinishScope net472 1.38μs 0.867ns 3.36ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.1μs 0.428ns 1.6ns 0.0122 0 0 880 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.5μs 0.229ns 0.888ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.12μs 0.293ns 1.1ns 0.0118 0 0 880 B
#3075 RunOnMethodBegin net472 1.49μs 0.528ns 1.97ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.18μs 0.444ns 1.6ns 0.012 0 0 880 B

andrewlock avatar Sep 06 '22 00:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.123
  • 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 719μs 273ns 1.02μs 0.357 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 474μs 210ns 785ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 718μs 459ns 1.78μs 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 476μs 344ns 1.33μs 0 0 0 2.59 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.123 186.35 209.22

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 186ns 0.187ns 0.723ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 246ns 0.258ns 0.997ns 0.00584 0 0 424 B
master AllCycleMoreComplexBody net472 186ns 0.0916ns 0.33ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 236ns 0.774ns 3ns 0.00547 0 0 400 B
master BodyExtractorSimpleBody net472 261ns 0.187ns 0.701ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 238ns 0.362ns 1.4ns 0.00366 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.5μs 14.1ns 50.8ns 1.21 0.0216 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 13.1ns 50.9ns 0.0891 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 208ns 0.888ns 3.44ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.411ns 1.59ns 0.00581 0 0 424 B
#3075 AllCycleMoreComplexBody net472 188ns 0.267ns 1.03ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 237ns 0.245ns 0.918ns 0.00546 0 0 400 B
#3075 BodyExtractorSimpleBody net472 277ns 0.338ns 1.31ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 241ns 0.322ns 1.25ns 0.00372 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.4μs 6.35ns 22.9ns 1.2 0.0215 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12μs 12.9ns 48.2ns 0.0897 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 299ns 1.16μs 0.179 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 182μs 134ns 483ns 0.181 0 0 20.57 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.87μs 1.28ns 4.96ns 0.15 0.000932 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.41μs 0.62ns 2.4ns 0.0127 0 0 936 B
#3075 ExecuteNonQuery net472 1.83μs 1.02ns 3.82ns 0.15 0.000914 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.46μs 0.675ns 2.53ns 0.0126 0 0 936 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.49μs 0.378ns 1.36ns 0.184 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.57μs 1.04ns 3.88ns 0.0149 0 0 1.1 KB
master CallElasticsearchAsync net472 2.61μs 0.833ns 3.23ns 0.204 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.6μs 0.529ns 1.98ns 0.0168 0 0 1.22 KB
#3075 CallElasticsearch net472 2.42μs 0.572ns 2.22ns 0.184 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.57μs 0.858ns 3.21ns 0.0152 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.63μs 1.86ns 7.21ns 0.204 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.64μs 0.402ns 1.56ns 0.0163 0 0 1.22 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.59μs 6.98ns 27ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.71μs 2.64ns 9.86ns 0.0179 0 0 1.34 KB
#3075 ExecuteAsync net472 2.59μs 5.13ns 19.9ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.67μs 4.64ns 18ns 0.0185 0 0 1.34 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.85μs 9.71ns 36.3ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.63μs 7.35ns 26.5ns 0.0343 0 0 2.6 KB
#3075 SendAsync net472 5.61μs 12.1ns 47ns 0.438 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.48μs 3.77ns 14.1ns 0.0346 0 0 2.6 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.04ns 7.9ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.53μs 1.4ns 5.24ns 0.0254 0 0 1.85 KB
#3075 EnrichedLog net472 3.08μs 2.27ns 8.8ns 0.288 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.75μs 0.853ns 3.08ns 0.0244 0 0 1.85 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 233ns 904ns 0.682 0.227 0 4.65 KB
master EnrichedLog netcoreapp3.1 117μs 317ns 1.19μs 0.0593 0 0 4.49 KB
#3075 EnrichedLog net472 153μs 222ns 859ns 0.694 0.231 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 119μs 162ns 627ns 0.0593 0 0 4.49 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.63μs 15.2ns 58.9ns 0.57 0.00277 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.55μs 20.8ns 80.5ns 0.0516 0 0 3.91 KB
#3075 EnrichedLog net472 5.58μs 9.01ns 33.7ns 0.568 0.00276 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.33μs 7.77ns 30.1ns 0.0539 0 0 3.91 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.4μs 1.77ns 6.86ns 0.217 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.89μs 1.22ns 4.71ns 0.0179 0 0 1.32 KB
#3075 SendReceive net472 2.41μs 1.06ns 3.98ns 0.217 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.89μs 1.27ns 4.74ns 0.018 0 0 1.32 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 1.93ns 7.23ns 0.353 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.27μs 2.92ns 10.1ns 0.0235 0 0 1.8 KB
#3075 EnrichedLog net472 5.08μs 2.07ns 8.01ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.34μs 1.32ns 4.93ns 0.0239 0 0 1.8 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.19μs 0.539ns 2.09ns 0.129 0 0 810 B
master StartFinishSpan netcoreapp3.1 989ns 0.806ns 3.12ns 0.0103 0 0 760 B
master StartFinishScope net472 1.38μs 0.334ns 1.25ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.14μs 0.37ns 1.43ns 0.012 0 0 880 B
#3075 StartFinishSpan net472 1.14μs 0.272ns 1.05ns 0.128 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 927ns 0.636ns 2.46ns 0.0102 0 0 760 B
#3075 StartFinishScope net472 1.39μs 0.423ns 1.53ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.07μs 0.492ns 1.84ns 0.0117 0 0 880 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.52μs 0.366ns 1.42ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.27μs 0.469ns 1.75ns 0.012 0 0 880 B
#3075 RunOnMethodBegin net472 1.55μs 0.529ns 2.05ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.15μs 0.498ns 1.8ns 0.0116 0 0 880 B

andrewlock avatar Sep 06 '22 15:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.131
  • 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 719μs 273ns 1.02μs 0.357 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 474μs 210ns 785ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 725μs 367ns 1.42μs 0.359 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 453μs 239ns 924ns 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.131 186.35 210.70

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 186ns 0.187ns 0.723ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 246ns 0.258ns 0.997ns 0.00584 0 0 424 B
master AllCycleMoreComplexBody net472 186ns 0.0916ns 0.33ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 236ns 0.774ns 3ns 0.00547 0 0 400 B
master BodyExtractorSimpleBody net472 261ns 0.187ns 0.701ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 238ns 0.362ns 1.4ns 0.00366 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.5μs 14.1ns 50.8ns 1.21 0.0216 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 13.1ns 50.9ns 0.0891 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 211ns 0.191ns 0.74ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.35ns 1.31ns 0.00578 0 0 424 B
#3075 AllCycleMoreComplexBody net472 187ns 0.183ns 0.685ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 237ns 0.268ns 1.04ns 0.00547 0 0 400 B
#3075 BodyExtractorSimpleBody net472 265ns 0.164ns 0.635ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 226ns 0.257ns 0.994ns 0.00373 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 10.8ns 41.6ns 1.21 0.0216 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 11.9μs 22ns 85.1ns 0.0887 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 299ns 1.16μs 0.179 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 182μs 189ns 731ns 0.182 0 0 20.57 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.87μs 1.28ns 4.96ns 0.15 0.000932 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.41μs 0.62ns 2.4ns 0.0127 0 0 936 B
#3075 ExecuteNonQuery net472 1.85μs 0.786ns 3.05ns 0.15 0.000925 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.56μs 0.542ns 2.1ns 0.0125 0 0 936 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.49μs 0.378ns 1.36ns 0.184 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.57μs 1.04ns 3.88ns 0.0149 0 0 1.1 KB
master CallElasticsearchAsync net472 2.61μs 0.833ns 3.23ns 0.204 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.6μs 0.529ns 1.98ns 0.0168 0 0 1.22 KB
#3075 CallElasticsearch net472 2.41μs 0.458ns 1.65ns 0.182 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.54μs 0.793ns 2.97ns 0.0147 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.66μs 0.746ns 2.58ns 0.205 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.74μs 0.318ns 1.15ns 0.0166 0 0 1.22 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.59μs 6.98ns 27ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.71μs 2.64ns 9.86ns 0.0179 0 0 1.34 KB
#3075 ExecuteAsync net472 2.67μs 6.84ns 26.5ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.68μs 3.97ns 14.8ns 0.0181 0 0 1.34 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.85μs 9.71ns 36.3ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.63μs 7.35ns 26.5ns 0.0343 0 0 2.6 KB
#3075 SendAsync net472 5.7μs 16.8ns 65.2ns 0.439 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.69μs 9.35ns 36.2ns 0.0347 0 0 2.6 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.04ns 7.9ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.53μs 1.4ns 5.24ns 0.0254 0 0 1.85 KB
#3075 EnrichedLog net472 3.17μs 3.19ns 12.3ns 0.287 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.5μs 1.33ns 5.16ns 0.0252 0 0 1.85 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 233ns 904ns 0.682 0.227 0 4.65 KB
master EnrichedLog netcoreapp3.1 117μs 317ns 1.19μs 0.0593 0 0 4.49 KB
#3075 EnrichedLog net472 153μs 106ns 411ns 0.688 0.229 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 117μs 219ns 820ns 0.0592 0 0 4.49 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.63μs 15.2ns 58.9ns 0.57 0.00277 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.55μs 20.8ns 80.5ns 0.0516 0 0 3.91 KB
#3075 EnrichedLog net472 5.64μs 7.49ns 29ns 0.569 0.00283 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.46μs 11.8ns 45.7ns 0.0523 0 0 3.91 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.4μs 1.77ns 6.86ns 0.217 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.89μs 1.22ns 4.71ns 0.0179 0 0 1.32 KB
#3075 SendReceive net472 2.29μs 1.99ns 7.44ns 0.217 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.79μs 0.666ns 2.58ns 0.0178 0 0 1.32 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 1.93ns 7.23ns 0.353 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.27μs 2.92ns 10.1ns 0.0235 0 0 1.8 KB
#3075 EnrichedLog net472 4.99μs 4.08ns 15.3ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.37μs 2.33ns 8.73ns 0.0241 0 0 1.8 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.19μs 0.539ns 2.09ns 0.129 0 0 810 B
master StartFinishSpan netcoreapp3.1 989ns 0.806ns 3.12ns 0.0103 0 0 760 B
master StartFinishScope net472 1.38μs 0.334ns 1.25ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.14μs 0.37ns 1.43ns 0.012 0 0 880 B
#3075 StartFinishSpan net472 1.16μs 0.395ns 1.53ns 0.128 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 971ns 0.335ns 1.3ns 0.0102 0 0 760 B
#3075 StartFinishScope net472 1.41μs 0.402ns 1.51ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.09μs 0.698ns 2.61ns 0.012 0 0 880 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.52μs 0.366ns 1.42ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.27μs 0.469ns 1.75ns 0.012 0 0 880 B
#3075 RunOnMethodBegin net472 1.51μs 0.391ns 1.46ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.24μs 0.789ns 2.95ns 0.0119 0 0 880 B

andrewlock avatar Sep 06 '22 16:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.125
  • 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 723μs 429ns 1.66μs 0.361 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 474μs 225ns 873ns 0 0 0 2.59 KB
#3075 WriteAndFlushEnrichedTraces net472 716μs 348ns 1.3μs 0.361 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 461μs 146ns 546ns 0 0 0 2.58 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 185ns 0.15ns 0.583ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 235ns 0.269ns 1.04ns 0.00567 0 0 424 B
master AllCycleMoreComplexBody net472 201ns 0.196ns 0.732ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 232ns 0.28ns 1.08ns 0.00549 0 0 400 B
master BodyExtractorSimpleBody net472 276ns 0.388ns 1.5ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 237ns 0.653ns 2.53ns 0.00368 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.5μs 7.99ns 30.9ns 1.21 0.0219 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 11.8μs 9.92ns 35.8ns 0.088 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 187ns 0.141ns 0.547ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.242ns 0.939ns 0.00579 0 0 424 B
#3075 AllCycleMoreComplexBody net472 211ns 0.32ns 1.24ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 235ns 0.211ns 0.818ns 0.00545 0 0 400 B
#3075 BodyExtractorSimpleBody net472 283ns 0.392ns 1.47ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 233ns 0.195ns 0.703ns 0.00374 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.6μs 13.4ns 52.1ns 1.21 0.0218 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 11.9μs 11.5ns 43.1ns 0.0894 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 174ns 675ns 0.182 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 181μs 90.7ns 339ns 0.271 0 0 20.57 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 0.652ns 2.35ns 0.15 0.000902 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.43μs 0.435ns 1.57ns 0.0122 0 0 936 B
#3075 ExecuteNonQuery net472 1.81μs 0.718ns 2.78ns 0.15 0.000905 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.43μs 0.582ns 2.26ns 0.0129 0 0 936 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.54μs 0.772ns 2.99ns 0.184 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.51μs 0.547ns 2.05ns 0.015 0 0 1.1 KB
master CallElasticsearchAsync net472 2.63μs 0.986ns 3.82ns 0.205 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.66μs 0.515ns 1.99ns 0.0157 0 0 1.22 KB
#3075 CallElasticsearch net472 2.39μs 0.727ns 2.62ns 0.183 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.54μs 0.801ns 2.89ns 0.0146 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.6μs 1.07ns 4.16ns 0.205 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.61μs 0.693ns 2.59ns 0.0161 0 0 1.22 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.67μs 5.61ns 21ns 0.226 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.76μs 3.01ns 10.9ns 0.0184 0 0 1.34 KB
#3075 ExecuteAsync net472 2.63μs 6.99ns 25.2ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.74μs 3.2ns 12.4ns 0.018 0 0 1.34 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.76μs 9.97ns 38.6ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.64μs 8.08ns 31.3ns 0.0346 0 0 2.6 KB
#3075 SendAsync net472 5.59μs 11.9ns 46.2ns 0.44 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.59μs 6.87ns 25.7ns 0.0345 0 0 2.6 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.35μs 4.06ns 15.7ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.46μs 1.1ns 4.1ns 0.0244 0 0 1.85 KB
#3075 EnrichedLog net472 3.27μs 4.87ns 18.9ns 0.288 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.52μs 1.11ns 4.29ns 0.0243 0 0 1.85 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 217ns 841ns 0.691 0.23 0 4.65 KB
master EnrichedLog netcoreapp3.1 118μs 192ns 744ns 0.0584 0 0 4.49 KB
#3075 EnrichedLog net472 150μs 244ns 946ns 0.683 0.228 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 116μs 236ns 915ns 0.059 0 0 4.49 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.72μs 13.5ns 50.5ns 0.569 0.00282 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.39μs 8.06ns 31.2ns 0.0548 0 0 3.91 KB
#3075 EnrichedLog net472 5.69μs 14.3ns 53.5ns 0.57 0.00279 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.49μs 5.57ns 21.6ns 0.0531 0 0 3.91 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.4μs 1.83ns 7.09ns 0.217 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.86μs 0.908ns 3.4ns 0.0176 0 0 1.32 KB
#3075 SendReceive net472 2.37μs 2.51ns 9.7ns 0.217 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.79μs 0.744ns 2.68ns 0.0179 0 0 1.32 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.1μs 1.45ns 5.44ns 0.354 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.31μs 1.48ns 5.56ns 0.0237 0 0 1.8 KB
#3075 EnrichedLog net472 5.32μs 23.9ns 92.4ns 0.354 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.34μs 24.5ns 170ns 0.0227 0 0 1.8 KB
Benchmarks.Trace.SpanBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.125 1,042.33 926.64

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 1.21μs 0.172ns 0.642ns 0.128 0 0 810 B
master StartFinishSpan netcoreapp3.1 1.04μs 0.599ns 2.32ns 0.0103 0 0 760 B
master StartFinishScope net472 1.36μs 0.637ns 2.47ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.09μs 1.01ns 3.93ns 0.012 0 0 880 B
#3075 StartFinishSpan net472 1.19μs 0.28ns 1.05ns 0.129 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 927ns 0.354ns 1.32ns 0.0102 0 0 760 B
#3075 StartFinishScope net472 1.38μs 0.387ns 1.5ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.05μs 0.156ns 0.561ns 0.0117 0 0 880 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.417ns 1.61ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.15μs 0.232ns 0.898ns 0.0121 0 0 880 B
#3075 RunOnMethodBegin net472 1.55μs 0.583ns 2.26ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.26μs 0.459ns 1.66ns 0.0119 0 0 880 B

andrewlock avatar Sep 06 '22 22:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 723μs 429ns 1.66μs 0.361 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 474μs 225ns 873ns 0 0 0 2.59 KB
#3075 WriteAndFlushEnrichedTraces net472 723μs 435ns 1.69μs 0.359 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 459μs 146ns 545ns 0 0 0 2.59 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 185ns 0.15ns 0.583ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 235ns 0.269ns 1.04ns 0.00567 0 0 424 B
master AllCycleMoreComplexBody net472 201ns 0.196ns 0.732ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 232ns 0.28ns 1.08ns 0.00549 0 0 400 B
master BodyExtractorSimpleBody net472 276ns 0.388ns 1.5ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 237ns 0.653ns 2.53ns 0.00368 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.5μs 7.99ns 30.9ns 1.21 0.0219 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 11.8μs 9.92ns 35.8ns 0.088 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 188ns 0.0901ns 0.337ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 237ns 0.376ns 1.46ns 0.00583 0 0 424 B
#3075 AllCycleMoreComplexBody net472 197ns 0.254ns 0.916ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 234ns 0.263ns 1.02ns 0.00551 0 0 400 B
#3075 BodyExtractorSimpleBody net472 259ns 0.209ns 0.809ns 0.0574 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 227ns 0.263ns 0.985ns 0.00362 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.7μs 34ns 131ns 1.2 0.0216 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 11.7μs 11.4ns 44.2ns 0.0873 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 182μs 174ns 675ns 0.182 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 179μs 136ns 528ns 0.179 0 0 20.57 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 0.652ns 2.35ns 0.15 0.000902 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.43μs 0.435ns 1.57ns 0.0122 0 0 936 B
#3075 ExecuteNonQuery net472 1.87μs 1.1ns 4.25ns 0.15 0.00094 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.49μs 0.733ns 2.74ns 0.0126 0 0 936 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.54μs 0.772ns 2.99ns 0.184 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.51μs 0.547ns 2.05ns 0.015 0 0 1.1 KB
master CallElasticsearchAsync net472 2.63μs 0.986ns 3.82ns 0.205 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.66μs 0.515ns 1.99ns 0.0157 0 0 1.22 KB
#3075 CallElasticsearch net472 2.6μs 0.771ns 2.89ns 0.183 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.6μs 0.519ns 1.87ns 0.0145 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.59μs 1.06ns 4.09ns 0.205 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.67μs 0.505ns 1.82ns 0.0167 0 0 1.22 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.67μs 5.61ns 21ns 0.226 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.76μs 3.01ns 10.9ns 0.0184 0 0 1.34 KB
#3075 ExecuteAsync net472 2.6μs 4.97ns 18.6ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.82μs 3.33ns 12ns 0.0179 0 0 1.34 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.76μs 9.97ns 38.6ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.64μs 8.08ns 31.3ns 0.0346 0 0 2.6 KB
#3075 SendAsync net472 5.69μs 10.4ns 40.3ns 0.44 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.62μs 6.8ns 25.5ns 0.035 0 0 2.6 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.35μs 4.06ns 15.7ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.46μs 1.1ns 4.1ns 0.0244 0 0 1.85 KB
#3075 EnrichedLog net472 3.14μs 2.68ns 10.4ns 0.287 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.56μs 1.34ns 5.02ns 0.0243 0 0 1.85 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 217ns 841ns 0.691 0.23 0 4.65 KB
master EnrichedLog netcoreapp3.1 118μs 192ns 744ns 0.0584 0 0 4.49 KB
#3075 EnrichedLog net472 151μs 92.1ns 345ns 0.681 0.227 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 116μs 241ns 934ns 0 0 0 4.49 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.72μs 13.5ns 50.5ns 0.569 0.00282 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.39μs 8.06ns 31.2ns 0.0548 0 0 3.91 KB
#3075 EnrichedLog net472 5.66μs 7.69ns 29.8ns 0.568 0.00281 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.48μs 5.12ns 19.8ns 0.0515 0 0 3.91 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.4μs 1.83ns 7.09ns 0.217 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.86μs 0.908ns 3.4ns 0.0176 0 0 1.32 KB
#3075 SendReceive net472 2.19μs 1.81ns 7.01ns 0.218 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.89μs 0.75ns 2.81ns 0.0171 0 0 1.32 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.1μs 1.45ns 5.44ns 0.354 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.31μs 1.48ns 5.56ns 0.0237 0 0 1.8 KB
#3075 EnrichedLog net472 5.04μs 1.72ns 6.65ns 0.352 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.42μs 3.12ns 12.1ns 0.0244 0 0 1.8 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.21μs 0.172ns 0.642ns 0.128 0 0 810 B
master StartFinishSpan netcoreapp3.1 1.04μs 0.599ns 2.32ns 0.0103 0 0 760 B
master StartFinishScope net472 1.36μs 0.637ns 2.47ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.09μs 1.01ns 3.93ns 0.012 0 0 880 B
#3075 StartFinishSpan net472 1.17μs 0.279ns 1.04ns 0.129 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 968ns 0.336ns 1.21ns 0.0102 0 0 760 B
#3075 StartFinishScope net472 1.39μs 0.443ns 1.66ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.07μs 0.42ns 1.57ns 0.0122 0 0 880 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.417ns 1.61ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.15μs 0.232ns 0.898ns 0.0121 0 0 880 B
#3075 RunOnMethodBegin net472 1.56μs 0.307ns 1.11ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.2μs 0.69ns 2.67ns 0.0119 0 0 880 B

andrewlock avatar Sep 07 '22 00:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.200
  • 1 benchmarks have fewer allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.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 720μs 741ns 2.87μs 0.357 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 461μs 198ns 713ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 717μs 702ns 2.72μs 0.355 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 472μs 230ns 889ns 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.285 230.47 179.37

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 187ns 0.0739ns 0.286ns 0.0675 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 239ns 0.29ns 1.12ns 0.00576 0 0 424 B
master AllCycleMoreComplexBody net472 230ns 0.121ns 0.468ns 0.0638 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 233ns 0.341ns 1.32ns 0.00551 0 0 400 B
master BodyExtractorSimpleBody net472 264ns 0.188ns 0.729ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 228ns 0.269ns 1.01ns 0.00364 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.4μs 8.33ns 32.3ns 1.2 0.0216 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 11.7μs 7.61ns 27.4ns 0.0885 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 189ns 0.113ns 0.423ns 0.0675 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 236ns 0.272ns 1.02ns 0.00578 0 0 424 B
#3075 AllCycleMoreComplexBody net472 179ns 0.0941ns 0.352ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 236ns 0.294ns 1.14ns 0.00546 0 0 400 B
#3075 BodyExtractorSimpleBody net472 262ns 0.161ns 0.622ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 231ns 0.302ns 1.09ns 0.00368 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 12.6ns 48.7ns 1.21 0.0218 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12μs 10.5ns 37.9ns 0.0904 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 185μs 228ns 884ns 0.185 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 186μs 282ns 1.06μs 0.185 0 0 20.57 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.91μs 0.799ns 3.09ns 0.15 0.00096 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.46μs 0.605ns 2.26ns 0.0124 0 0 936 B
#3075 ExecuteNonQuery net472 1.87μs 0.396ns 1.43ns 0.15 0.000933 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.44μs 0.434ns 1.5ns 0.0123 0 0 936 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.52μs 0.894ns 3.34ns 0.183 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.47μs 0.355ns 1.28ns 0.0147 0 0 1.1 KB
master CallElasticsearchAsync net472 2.64μs 1.32ns 5.1ns 0.205 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.64μs 0.495ns 1.85ns 0.0164 0 0 1.22 KB
#3075 CallElasticsearch net472 2.58μs 0.765ns 2.96ns 0.183 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.56μs 0.618ns 2.23ns 0.0148 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.62μs 0.486ns 1.82ns 0.205 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.65μs 0.623ns 2.41ns 0.0164 0 0 1.22 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.65μs 6.63ns 25.7ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.72μs 5.27ns 20.4ns 0.0181 0 0 1.34 KB
#3075 ExecuteAsync net472 2.72μs 6.04ns 22.6ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.68μs 3.85ns 17.6ns 0.0178 0 0 1.34 KB
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #3075

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 2.77 KB 2.72 KB -48 B -1.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net472 5.7μs 16.1ns 62.2ns 0.438 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.65μs 17.6ns 72.6ns 0.0342 0 0 2.6 KB
#3075 SendAsync net472 5.3μs 10.6ns 39.5ns 0.431 0 0 2.72 KB
#3075 SendAsync netcoreapp3.1 3.7μs 5.04ns 19.5ns 0.035 0 0 2.6 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.09μs 1.79ns 6.45ns 0.287 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.49μs 1.39ns 5.02ns 0.0248 0 0 1.85 KB
#3075 EnrichedLog net472 3.3μs 3.79ns 14.7ns 0.288 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.53μs 1.79ns 6.7ns 0.0252 0 0 1.85 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 133ns 514ns 0.675 0.225 0 4.65 KB
master EnrichedLog netcoreapp3.1 116μs 279ns 1.08μs 0 0 0 4.49 KB
#3075 EnrichedLog net472 152μs 225ns 872ns 0.681 0.227 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 118μs 255ns 953ns 0 0 0 4.49 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.48μs 11.7ns 45.4ns 0.569 0.00272 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.38μs 8.34ns 32.3ns 0.0551 0 0 3.91 KB
#3075 EnrichedLog net472 5.54μs 6.75ns 26.1ns 0.569 0.00282 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.45μs 10.9ns 42.3ns 0.0528 0 0 3.91 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.71ns 6.38ns 0.217 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.91μs 1.08ns 4.17ns 0.0181 0 0 1.32 KB
#3075 SendReceive net472 2.3μs 1.93ns 7.49ns 0.218 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.86μs 0.811ns 3.04ns 0.0177 0 0 1.32 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.07μs 1.88ns 7.28ns 0.354 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.28μs 2.01ns 7.77ns 0.0236 0 0 1.8 KB
#3075 EnrichedLog net472 5.04μs 2.24ns 8.37ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.34μs 1.53ns 5.73ns 0.0239 0 0 1.8 KB
Benchmarks.Trace.SpanBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3075

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.121 1,043.13 930.68

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 1.18μs 0.4ns 1.49ns 0.129 0 0 810 B
master StartFinishSpan netcoreapp3.1 1.04μs 0.591ns 2.21ns 0.00989 0 0 760 B
master StartFinishScope net472 1.41μs 0.625ns 2.42ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.07μs 0.525ns 1.96ns 0.0117 0 0 880 B
#3075 StartFinishSpan net472 1.13μs 0.601ns 2.25ns 0.128 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 931ns 0.479ns 1.79ns 0.0107 0 0 760 B
#3075 StartFinishScope net472 1.39μs 1.06ns 4.11ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.07μs 1.17ns 4.38ns 0.0117 0 0 880 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 1.52ns 5.68ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.14μs 0.331ns 1.24ns 0.0119 0 0 880 B
#3075 RunOnMethodBegin net472 1.51μs 0.625ns 2.42ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.16μs 0.431ns 1.61ns 0.0122 0 0 880 B

andrewlock avatar Sep 07 '22 15:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.220
  • 1 benchmarks have fewer allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.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 729μs 302ns 1.17μs 0.365 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 461μs 160ns 576ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 722μs 473ns 1.83μs 0.361 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 467μs 118ns 426ns 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.245 185.51 231.00
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.196 186.00 222.48

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 186ns 0.216ns 0.81ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 236ns 0.29ns 1.12ns 0.0059 0 0 424 B
master AllCycleMoreComplexBody net472 186ns 0.163ns 0.632ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 234ns 0.213ns 0.796ns 0.0054 0 0 400 B
master BodyExtractorSimpleBody net472 286ns 0.386ns 1.5ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 227ns 0.267ns 1.04ns 0.00376 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.5μs 13.3ns 51.5ns 1.21 0.0217 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12μs 12.1ns 45.2ns 0.0894 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 223ns 0.289ns 1.12ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 243ns 0.183ns 0.708ns 0.00579 0 0 424 B
#3075 AllCycleMoreComplexBody net472 231ns 0.22ns 0.851ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 241ns 0.663ns 2.57ns 0.00551 0 0 400 B
#3075 BodyExtractorSimpleBody net472 256ns 0.227ns 0.819ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 229ns 0.234ns 0.875ns 0.00368 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.4μs 20.1ns 75.2ns 1.21 0.0216 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12μs 15.8ns 61.1ns 0.0893 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 178μs 98.2ns 367ns 0.267 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 183μs 214ns 802ns 0.181 0 0 20.58 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.82μs 0.294ns 1.06ns 0.15 0.000909 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.43μs 0.404ns 1.51ns 0.0122 0 0 936 B
#3075 ExecuteNonQuery net472 1.87μs 0.808ns 3.13ns 0.15 0.000937 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.45μs 0.582ns 2.1ns 0.0123 0 0 936 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 0.372ns 1.39ns 0.183 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.58μs 0.693ns 2.5ns 0.015 0 0 1.1 KB
master CallElasticsearchAsync net472 2.69μs 1.08ns 4.17ns 0.204 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.59μs 0.561ns 2.17ns 0.0168 0 0 1.22 KB
#3075 CallElasticsearch net472 2.47μs 0.732ns 2.74ns 0.183 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.53μs 0.386ns 1.34ns 0.0147 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.64μs 1.04ns 4.05ns 0.204 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.68μs 1.73ns 6.68ns 0.016 0 0 1.22 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.7μs 4.8ns 17.3ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.79μs 3.06ns 11.4ns 0.0185 0 0 1.34 KB
#3075 ExecuteAsync net472 2.6μs 5.27ns 20.4ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.7μs 3.95ns 14.8ns 0.0185 0 0 1.34 KB
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #3075

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 2.77 KB 2.72 KB -48 B -1.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net472 5.7μs 13.7ns 53ns 0.439 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.63μs 7.04ns 27.3ns 0.0341 0 0 2.6 KB
#3075 SendAsync net472 5.35μs 9.85ns 38.1ns 0.43 0 0 2.72 KB
#3075 SendAsync netcoreapp3.1 3.58μs 7.27ns 28.2ns 0.0342 0 0 2.6 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.83ns 11ns 0.288 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.61μs 1.14ns 4.1ns 0.0248 0 0 1.85 KB
#3075 EnrichedLog net472 3.08μs 4.27ns 16.6ns 0.288 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.44μs 1.88ns 7.27ns 0.0245 0 0 1.85 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 155μs 174ns 674ns 0.687 0.229 0 4.65 KB
master EnrichedLog netcoreapp3.1 117μs 284ns 1.1μs 0.0596 0 0 4.49 KB
#3075 EnrichedLog net472 151μs 139ns 521ns 0.686 0.229 0 4.65 KB
#3075 EnrichedLog netcoreapp3.1 118μs 243ns 942ns 0.0592 0 0 4.49 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.65μs 9.76ns 36.5ns 0.568 0.0028 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.49μs 7.37ns 27.6ns 0.0541 0 0 3.91 KB
#3075 EnrichedLog net472 5.56μs 14ns 50.5ns 0.569 0.00284 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.39μs 7.52ns 27.1ns 0.0525 0 0 3.91 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.33μs 2.63ns 10.2ns 0.217 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.83μs 1.05ns 3.93ns 0.0183 0 0 1.32 KB
#3075 SendReceive net472 2.29μs 3.04ns 11.8ns 0.217 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.83μs 0.884ns 3.42ns 0.0182 0 0 1.32 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 3.35ns 13ns 0.354 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.38μs 2.89ns 11.2ns 0.0244 0 0 1.8 KB
#3075 EnrichedLog net472 5.07μs 2.56ns 9.58ns 0.354 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.31μs 1.4ns 5.42ns 0.0237 0 0 1.8 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 1.59ns 5.74ns 0.128 0 0 810 B
master StartFinishSpan netcoreapp3.1 921ns 0.556ns 2.08ns 0.0102 0 0 760 B
master StartFinishScope net472 1.44μs 0.599ns 2.32ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.08μs 0.466ns 1.74ns 0.0113 0 0 880 B
#3075 StartFinishSpan net472 1.19μs 0.388ns 1.5ns 0.129 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 935ns 0.417ns 1.56ns 0.0103 0 0 760 B
#3075 StartFinishScope net472 1.4μs 0.528ns 2.05ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.09μs 2.89ns 11.2ns 0.0121 0 0 880 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.577ns 2.24ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.15μs 0.333ns 1.29ns 0.012 0 0 880 B
#3075 RunOnMethodBegin net472 1.5μs 0.409ns 1.58ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.2μs 0.306ns 1.14ns 0.0121 0 0 880 B

andrewlock avatar Sep 07 '22 17:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 compared to master:

  • 1 benchmarks are slower, with geometric mean 1.203
  • 1 benchmarks have fewer allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.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 722μs 312ns 1.17μs 0.357 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 461μs 225ns 841ns 0 0 0 2.58 KB
#3075 WriteAndFlushEnrichedTraces net472 718μs 172ns 621ns 0.357 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 462μs 320ns 1.24μs 0 0 0 2.58 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3075

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.203 184.12 221.52

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 184ns 0.176ns 0.683ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 236ns 0.167ns 0.601ns 0.00581 0 0 424 B
master AllCycleMoreComplexBody net472 186ns 0.188ns 0.726ns 0.0637 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 233ns 0.204ns 0.765ns 0.00535 0 0 400 B
master BodyExtractorSimpleBody net472 267ns 0.39ns 1.51ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 233ns 0.216ns 0.779ns 0.00373 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.4μs 10.3ns 38.4ns 1.21 0.0216 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 11.8μs 11.1ns 43.1ns 0.0893 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 221ns 0.161ns 0.623ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 235ns 0.299ns 1.16ns 0.0058 0 0 424 B
#3075 AllCycleMoreComplexBody net472 197ns 0.104ns 0.39ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 235ns 0.479ns 1.86ns 0.00544 0 0 400 B
#3075 BodyExtractorSimpleBody net472 267ns 0.417ns 1.5ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 225ns 0.182ns 0.704ns 0.00373 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.4μs 7.63ns 29.6ns 1.21 0.0215 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12μs 13.9ns 53.8ns 0.0895 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 244ns 943ns 0.274 0 0 20.57 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 184μs 142ns 530ns 0.184 0 0 20.57 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.87μs 0.752ns 2.81ns 0.15 0.00094 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.41μs 0.64ns 2.31ns 0.0126 0 0 936 B
#3075 ExecuteNonQuery net472 1.89μs 0.855ns 3.2ns 0.15 0.00094 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.45μs 0.843ns 3.15ns 0.0123 0 0 936 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.42μs 0.425ns 1.59ns 0.184 0 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.52μs 0.782ns 2.82ns 0.0151 0 0 1.1 KB
master CallElasticsearchAsync net472 2.73μs 0.921ns 3.45ns 0.205 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.61μs 0.545ns 2.04ns 0.0169 0 0 1.22 KB
#3075 CallElasticsearch net472 2.65μs 1.51ns 5.63ns 0.183 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.56μs 1.09ns 4.09ns 0.0156 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.64μs 1.47ns 5.68ns 0.204 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.57μs 0.723ns 2.61ns 0.0165 0 0 1.22 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.6μs 5.75ns 21.5ns 0.226 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.62μs 1.92ns 7.18ns 0.0178 0 0 1.34 KB
#3075 ExecuteAsync net472 2.8μs 5.84ns 22.6ns 0.225 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.68μs 4.36ns 16.3ns 0.0185 0 0 1.34 KB
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Fewer allocations :tada:

Fewer allocations :tada: in #3075

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 2.77 KB 2.72 KB -48 B -1.73%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net472 5.69μs 14ns 54.1ns 0.437 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.66μs 5.81ns 22.5ns 0.0347 0 0 2.6 KB
#3075 SendAsync net472 5.45μs 15.6ns 60.4ns 0.431 0 0 2.72 KB
#3075 SendAsync netcoreapp3.1 3.59μs 4.81ns 18ns 0.0346 0 0 2.6 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 1.98ns 7.69ns 0.288 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.47μs 1.39ns 5.2ns 0.0248 0 0 1.85 KB
#3075 EnrichedLog net472 3.23μs 6.62ns 25.6ns 0.287 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.64μs 1.24ns 4.65ns 0.0254 0 0 1.85 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 175ns 655ns 0.677 0.226 0 4.65 KB
master EnrichedLog netcoreapp3.1 116μs 143ns 552ns 0 0 0 4.49 KB
#3075 EnrichedLog net472 153μs 199ns 770ns 0.688 0.229 0 4.66 KB
#3075 EnrichedLog netcoreapp3.1 115μs 163ns 632ns 0.0576 0 0 4.5 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.43μs 11.8ns 45.5ns 0.568 0.00272 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.46μs 12.6ns 48.9ns 0.0545 0 0 3.91 KB
#3075 EnrichedLog net472 5.52μs 10.7ns 39.9ns 0.568 0.00272 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.23μs 3.3ns 11.4ns 0.0526 0 0 3.91 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.31μs 2.76ns 10.7ns 0.218 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.78μs 0.94ns 3.64ns 0.018 0 0 1.32 KB
#3075 SendReceive net472 2.25μs 2.34ns 8.77ns 0.218 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.85μs 0.761ns 2.74ns 0.0176 0 0 1.32 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.1μs 1.24ns 4.49ns 0.353 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.34μs 1.22ns 4.71ns 0.0239 0 0 1.8 KB
#3075 EnrichedLog net472 4.86μs 1.75ns 6.53ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.34μs 1.2ns 4.48ns 0.0238 0 0 1.8 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.262ns 0.944ns 0.128 0 0 810 B
master StartFinishSpan netcoreapp3.1 920ns 0.36ns 1.3ns 0.0101 0 0 760 B
master StartFinishScope net472 1.48μs 0.708ns 2.74ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.08μs 0.625ns 2.34ns 0.012 0 0 880 B
#3075 StartFinishSpan net472 1.1μs 0.657ns 2.54ns 0.129 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 961ns 0.439ns 1.52ns 0.0102 0 0 760 B
#3075 StartFinishScope net472 1.38μs 0.848ns 3.29ns 0.142 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.1μs 0.424ns 1.53ns 0.012 0 0 880 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.54ns 2.09ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.16μs 0.393ns 1.52ns 0.0121 0 0 880 B
#3075 RunOnMethodBegin net472 1.49μs 1.12ns 4.34ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.19μs 0.599ns 2.32ns 0.0119 0 0 880 B

andrewlock avatar Sep 12 '22 11:09 andrewlock

Benchmarks Report :snail:

Benchmarks for #3075 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 716μs 599ns 2.24μs 0.359 0 0 3.18 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 474μs 702ns 2.72μs 0 0 0 2.59 KB
#3075 WriteAndFlushEnrichedTraces net472 707μs 955ns 3.7μs 0.351 0 0 3.18 KB
#3075 WriteAndFlushEnrichedTraces netcoreapp3.1 461μs 565ns 2.19μs 0 0 0 2.58 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 200ns 0.0758ns 0.284ns 0.0676 0 0 425 B
master AllCycleSimpleBody netcoreapp3.1 237ns 0.352ns 1.36ns 0.00571 0 0 424 B
master AllCycleMoreComplexBody net472 185ns 0.151ns 0.567ns 0.0638 0 0 401 B
master AllCycleMoreComplexBody netcoreapp3.1 233ns 0.265ns 0.957ns 0.0054 0 0 400 B
master BodyExtractorSimpleBody net472 273ns 0.218ns 0.846ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 225ns 0.339ns 1.27ns 0.00366 0 0 272 B
master BodyExtractorMoreComplexBody net472 14.9μs 7.36ns 28.5ns 1.21 0.0149 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 11.9μs 14.2ns 55ns 0.0888 0 0 6.75 KB
#3075 AllCycleSimpleBody net472 201ns 0.265ns 1.03ns 0.0676 0 0 425 B
#3075 AllCycleSimpleBody netcoreapp3.1 235ns 0.299ns 1.16ns 0.0058 0 0 424 B
#3075 AllCycleMoreComplexBody net472 187ns 0.186ns 0.722ns 0.0637 0 0 401 B
#3075 AllCycleMoreComplexBody netcoreapp3.1 236ns 0.304ns 1.14ns 0.00549 0 0 400 B
#3075 BodyExtractorSimpleBody net472 257ns 0.19ns 0.737ns 0.0573 0 0 361 B
#3075 BodyExtractorSimpleBody netcoreapp3.1 234ns 0.381ns 1.47ns 0.00364 0 0 272 B
#3075 BodyExtractorMoreComplexBody net472 14.5μs 8.73ns 32.7ns 1.21 0.0217 0 7.62 KB
#3075 BodyExtractorMoreComplexBody netcoreapp3.1 12.1μs 15.6ns 56.4ns 0.0895 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 305ns 1.18μs 0.181 0.0904 0 20.58 KB
#3075 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3075 SendRequest netcoreapp3.1 182μs 351ns 1.36μs 0.274 0 0 20.59 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 3.8ns 14.7ns 0.15 0 0 947 B
master ExecuteNonQuery netcoreapp3.1 1.44μs 2.02ns 7.57ns 0.0128 0 0 936 B
#3075 ExecuteNonQuery net472 1.8μs 2.07ns 8.01ns 0.15 0.00091 0 947 B
#3075 ExecuteNonQuery netcoreapp3.1 1.46μs 3.34ns 12.9ns 0.0127 0 0 936 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.67μs 1.72ns 6.65ns 0.183 0.00134 0 1.16 KB
master CallElasticsearch netcoreapp3.1 1.51μs 2.3ns 8.91ns 0.015 0 0 1.1 KB
master CallElasticsearchAsync net472 2.83μs 2.8ns 10.5ns 0.205 0 0 1.29 KB
master CallElasticsearchAsync netcoreapp3.1 1.67μs 0.548ns 2.05ns 0.0167 0 0 1.22 KB
#3075 CallElasticsearch net472 2.66μs 2.36ns 8.49ns 0.183 0 0 1.16 KB
#3075 CallElasticsearch netcoreapp3.1 1.53μs 0.767ns 2.66ns 0.0146 0 0 1.1 KB
#3075 CallElasticsearchAsync net472 2.77μs 1.44ns 5.59ns 0.204 0 0 1.29 KB
#3075 CallElasticsearchAsync netcoreapp3.1 1.62μs 0.828ns 3.1ns 0.0161 0 0 1.22 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.87μs 7.24ns 27.1ns 0.225 0 0 1.42 KB
master ExecuteAsync netcoreapp3.1 1.7μs 2.79ns 10.8ns 0.018 0 0 1.34 KB
#3075 ExecuteAsync net472 2.77μs 7.42ns 28.8ns 0.226 0 0 1.42 KB
#3075 ExecuteAsync netcoreapp3.1 1.66μs 3.44ns 13.3ns 0.0182 0 0 1.34 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.65μs 10.9ns 42.1ns 0.44 0 0 2.77 KB
master SendAsync netcoreapp3.1 3.62μs 5.27ns 20.4ns 0.0365 0 0 2.6 KB
#3075 SendAsync net472 5.71μs 12.3ns 47.8ns 0.438 0 0 2.77 KB
#3075 SendAsync netcoreapp3.1 3.53μs 5.39ns 20.9ns 0.0355 0 0 2.6 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 4.58ns 17.7ns 0.288 0 0 1.81 KB
master EnrichedLog netcoreapp3.1 2.47μs 1.65ns 5.95ns 0.0249 0 0 1.85 KB
#3075 EnrichedLog net472 3.31μs 3.89ns 15.1ns 0.287 0 0 1.81 KB
#3075 EnrichedLog netcoreapp3.1 2.51μs 6.35ns 24.6ns 0.0248 0 0 1.85 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 154μs 270ns 1.01μs 0.69 0.23 0 4.66 KB
master EnrichedLog netcoreapp3.1 118μs 314ns 1.22μs 0 0 0 4.5 KB
#3075 EnrichedLog net472 153μs 175ns 632ns 0.689 0.23 0 4.67 KB
#3075 EnrichedLog netcoreapp3.1 117μs 153ns 592ns 0 0 0 4.49 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.64μs 9.11ns 35.3ns 0.569 0.00288 0 3.59 KB
master EnrichedLog netcoreapp3.1 4.49μs 7.69ns 28.8ns 0.0535 0 0 3.91 KB
#3075 EnrichedLog net472 5.73μs 16.4ns 63.5ns 0.569 0.00285 0 3.59 KB
#3075 EnrichedLog netcoreapp3.1 4.5μs 10.7ns 41.5ns 0.0529 0 0 3.91 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.36μs 4.55ns 17.6ns 0.218 0 0 1.37 KB
master SendReceive netcoreapp3.1 1.78μs 1.32ns 5.11ns 0.0179 0 0 1.32 KB
#3075 SendReceive net472 2.37μs 4.17ns 16.1ns 0.218 0 0 1.37 KB
#3075 SendReceive netcoreapp3.1 1.88μs 1.78ns 6.66ns 0.018 0 0 1.32 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μs 2.41ns 9.33ns 0.352 0 0 2.23 KB
master EnrichedLog netcoreapp3.1 4.24μs 3.61ns 13.5ns 0.023 0 0 1.8 KB
#3075 EnrichedLog net472 5.04μs 3.54ns 13.2ns 0.353 0 0 2.23 KB
#3075 EnrichedLog netcoreapp3.1 4.26μs 2.04ns 7.9ns 0.0236 0 0 1.8 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.627ns 2.43ns 0.128 0 0 810 B
master StartFinishSpan netcoreapp3.1 965ns 0.36ns 1.3ns 0.0102 0 0 760 B
master StartFinishScope net472 1.49μs 0.844ns 3.16ns 0.141 0 0 891 B
master StartFinishScope netcoreapp3.1 1.08μs 0.53ns 1.91ns 0.0119 0 0 880 B
#3075 StartFinishSpan net472 1.18μs 0.469ns 1.75ns 0.128 0 0 810 B
#3075 StartFinishSpan netcoreapp3.1 918ns 0.291ns 1.13ns 0.0105 0 0 760 B
#3075 StartFinishScope net472 1.48μs 0.871ns 3.14ns 0.141 0 0 891 B
#3075 StartFinishScope netcoreapp3.1 1.08μs 0.574ns 2.07ns 0.0118 0 0 880 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.778ns 3.01ns 0.141 0 0 891 B
master RunOnMethodBegin netcoreapp3.1 1.12μs 0.579ns 2.17ns 0.0117 0 0 880 B
#3075 RunOnMethodBegin net472 1.51μs 1.07ns 4.14ns 0.141 0 0 891 B
#3075 RunOnMethodBegin netcoreapp3.1 1.19μs 0.457ns 1.71ns 0.0117 0 0 880 B

andrewlock avatar Sep 12 '22 14:09 andrewlock