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

[DRAFT] [Tracer] `SpanContext` refactor part 1: remove `Span.Context` property

Open lucaspimentel opened this issue 3 years ago • 46 comments

Summary of changes

This is the first step in removing the SpanContext instance we create for each Span. It adds Span members that delegate to a private SpanContext field. Old and new code can start using these members and avoid using Span.Context, while we continue with the refactor in separate PRs.

  • convert property Span.Context to private field _context
  • add internal members to Span which delegate to _context
  • replace most uses of Span.Context with the new Span properties
  • where a SpanContext is required (mostly for propagation), replace Span.Context with Span.GetContext()

Reason for change

The goal here is to stop creating a SpanContext instance for every Span and to have a better separation between the concepts of "local span" and "propagated context." This should make it easier to work with these core tracer types and, as a bonus, reduce the amount of heap allocations per span.

We are breaking this refactoring project into several PRs:

  1. (this PR) #3599
  2. Refactor Span creation so it does not require a SpanContext anymore, but can optionally use one as its parent (this is public API and can't be removed for now). Remove the private Span._context field.
  3. Add a new internal readonly struct PropagatedSpanContext alternative to SpanContext, used to hold values during trace propagation. Update Span.GetContext() and propagators to use this type instead of the now deprecated SpanContext.

...

  1. (breaking change) flag type ISpanContext and SpanContext as deprecated (v3?) and remove them (v4?)

Implementation details

Change the following Span members:

// new temporary backing field for Span.Context property
+ private SpanContext _context;

// temporary access to SpanContext when we still need it (e.g. propagation),
// all other access changes to Span properties
+ internal SpanContext GetContext() => _context;

// make this private but keep it around because it's used for version-conflict via reflection
- internal SpanContext Context { get; }
+ private SpanContext Context => _context;

+ internal TraceContext TraceContext => _context.TraceContext;

+ internal ulong? ParentId => _context.Parent?.SpanId;

+ internal string RawTraceId => _context.RawTraceId;

+ internal string RawSpanId => _context.RawSpanId;

+ internal ISpanContext Parent => _context.Parent;

+ internal PathwayContext? PathwayContext => _context.PathwayContext;

+ internal void SetCheckpoint(...) =>  _context.SetCheckpoint(...)

+ internal void MergePathwayContext(...) => _context.MergePathwayContext(...)

Test coverage

All tests were updated to use the new members on Span instead of SpanContext.

Other details

N/A

lucaspimentel avatar Dec 22 '22 20:12 lucaspimentel

Datadog Report

Branch report: lpimentel/refactor-span-context-1 Commit report: 7971a0d

:x: dd-trace-dotnet 1 Failed (1 Known Flaky), 0 New Flaky, 227076 Passed, 656 Skipped, 19m 42.25s Wall Time

:x: Failed Tests (1)

  • SubmitsTraces - Datadog.Trace.ClrProfiler.IntegrationTests.DefaultTransportLargePayloadTests - :snowflake: Known flaky - Details

    Expand for error
    xpected 10000 spans but received 0 entries 
    
    xpected: True
    ctual:   False
    

datadog-ddstaging[bot] avatar Dec 22 '22 20:12 datadog-ddstaging[bot]

Benchmarks Report :snail:

Benchmarks for #3599 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 754μs 344ns 1.29μs 0.381 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 556μs 137ns 493ns 0 0 0 2.62 KB
#3599 WriteAndFlushEnrichedTraces net472 755μs 401ns 1.55μs 0.386 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 555μs 156ns 585ns 0 0 0 2.63 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3599

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.120 25,109.98 22,422.76

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 25μs 129ns 591ns 0.274 0 0 1.78 KB
master AllCycleSimpleBody netcoreapp3.1 22.9μs 67.4ns 261ns 0.0115 0 0 1.65 KB
master AllCycleMoreComplexBody net472 194μs 545ns 2.11μs 2.02 0 0 13.03 KB
master AllCycleMoreComplexBody netcoreapp3.1 181μs 595ns 2.3μs 0.0885 0 0 12.11 KB
master BodyExtractorSimpleBody net472 279ns 0.151ns 0.564ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 237ns 0.1ns 0.361ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.8μs 11.8ns 45.6ns 1.21 0.0158 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.6μs 7.22ns 28ns 0.0942 0 0 6.75 KB
#3599 AllCycleSimpleBody net472 22.5μs 87.8ns 340ns 0.275 0 0 1.78 KB
#3599 AllCycleSimpleBody netcoreapp3.1 22.3μs 166ns 1.66μs 0.0211 0 0 1.65 KB
#3599 AllCycleMoreComplexBody net472 194μs 94.7ns 367ns 1.99 0 0 13.03 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 178μs 74.4ns 278ns 0.091 0 0 12.11 KB
#3599 BodyExtractorSimpleBody net472 287ns 0.424ns 1.59ns 0.0573 0 0 361 B
#3599 BodyExtractorSimpleBody netcoreapp3.1 232ns 0.123ns 0.475ns 0.00362 0 0 272 B
#3599 BodyExtractorMoreComplexBody net472 15.7μs 6.62ns 24.8ns 1.2 0.0156 0 7.62 KB
#3599 BodyExtractorMoreComplexBody netcoreapp3.1 12.6μs 4.56ns 17.7ns 0.0944 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 196μs 939ns 4.09μs 0.287 0 0 20.95 KB
#3599 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 195μs 799ns 3.09μs 0.19 0 0 20.95 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.92μs 1.54ns 5.98ns 0.163 0.000972 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 1.41μs 0.92ns 3.56ns 0.014 0 0 1.02 KB
#3599 ExecuteNonQuery net472 1.79μs 2.37ns 8.54ns 0.163 0.000896 0 1.03 KB
#3599 ExecuteNonQuery netcoreapp3.1 1.5μs 0.686ns 2.57ns 0.0135 0 0 1.02 KB
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.88ns 3.29ns 0.196 0 0 1.24 KB
master CallElasticsearch netcoreapp3.1 1.55μs 0.886ns 3.32ns 0.0161 0 0 1.18 KB
master CallElasticsearchAsync net472 2.48μs 1ns 3.74ns 0.218 0 0 1.37 KB
master CallElasticsearchAsync netcoreapp3.1 1.59μs 0.474ns 1.77ns 0.0175 0 0 1.3 KB
#3599 CallElasticsearch net472 2.35μs 1.24ns 4.63ns 0.196 0 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.55μs 0.804ns 3.01ns 0.0156 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.68μs 1.2ns 4.63ns 0.217 0 0 1.37 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.61μs 0.493ns 1.84ns 0.0178 0 0 1.3 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.76μs 0.93ns 3.35ns 0.238 0 0 1.5 KB
master ExecuteAsync netcoreapp3.1 1.74μs 0.844ns 3.16ns 0.0191 0 0 1.42 KB
#3599 ExecuteAsync net472 2.71μs 1.13ns 4.38ns 0.237 0 0 1.5 KB
#3599 ExecuteAsync netcoreapp3.1 1.75μs 0.684ns 2.65ns 0.0193 0 0 1.42 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 7.28μs 2.85ns 11ns 0.559 0 0 3.54 KB
master SendAsync netcoreapp3.1 4.57μs 1.7ns 6.59ns 0.0434 0 0 3.21 KB
#3599 SendAsync net472 7.17μs 1.89ns 6.8ns 0.562 0 0 3.54 KB
#3599 SendAsync netcoreapp3.1 4.67μs 2.68ns 10ns 0.0444 0 0 3.21 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.9μs 4.76ns 18.4ns 0.301 0 0 1.9 KB
master EnrichedLog netcoreapp3.1 2.29μs 1.28ns 4.6ns 0.0262 0 0 1.93 KB
#3599 EnrichedLog net472 2.78μs 3.13ns 12.1ns 0.302 0 0 1.9 KB
#3599 EnrichedLog netcoreapp3.1 2.24μs 1.14ns 4.12ns 0.0264 0 0 1.93 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 138ns 536ns 0.742 0.223 0 4.74 KB
master EnrichedLog netcoreapp3.1 120μs 328ns 1.27μs 0.0598 0 0 4.58 KB
#3599 EnrichedLog net472 148μs 92.8ns 347ns 0.744 0.223 0 4.74 KB
#3599 EnrichedLog netcoreapp3.1 120μs 308ns 1.19μs 0 0 0 4.58 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.51μs 2.86ns 11.1ns 0.584 0.00273 0 3.68 KB
master EnrichedLog netcoreapp3.1 4.23μs 1.95ns 7.54ns 0.0549 0 0 4 KB
#3599 EnrichedLog net472 5.51μs 2.13ns 8.25ns 0.584 0.00275 0 3.68 KB
#3599 EnrichedLog netcoreapp3.1 4.2μs 2.91ns 11.3ns 0.0552 0 0 4 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net472 2.34μs 2.71ns 9.78ns 0.231 0 0 1.45 KB
master SendReceive netcoreapp3.1 1.76μs 0.735ns 2.85ns 0.0192 0 0 1.4 KB
#3599 SendReceive net472 2.25μs 2.32ns 8.69ns 0.23 0 0 1.45 KB
#3599 SendReceive netcoreapp3.1 1.85μs 0.886ns 3.43ns 0.0185 0 0 1.4 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.12ns 4.19ns 0.366 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 4.09μs 2ns 7.48ns 0.0246 0 0 1.89 KB
#3599 EnrichedLog net472 4.59μs 1.61ns 6.04ns 0.368 0 0 2.32 KB
#3599 EnrichedLog netcoreapp3.1 4.09μs 1.38ns 5.33ns 0.0245 0 0 1.89 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.23μs 1.4ns 5.41ns 0.141 0 0 891 B
master StartFinishSpan netcoreapp3.1 940ns 1.59ns 6.17ns 0.0115 0 0 840 B
master StartFinishScope net472 1.33μs 0.572ns 2.22ns 0.154 0 0 971 B
master StartFinishScope netcoreapp3.1 1.06μs 0.402ns 1.5ns 0.0133 0 0 960 B
#3599 StartFinishSpan net472 1.16μs 0.847ns 3.17ns 0.141 0 0 891 B
#3599 StartFinishSpan netcoreapp3.1 975ns 0.484ns 1.81ns 0.0113 0 0 840 B
#3599 StartFinishScope net472 1.38μs 2.48ns 9.59ns 0.154 0 0 971 B
#3599 StartFinishScope netcoreapp3.1 1.09μs 0.315ns 1.18ns 0.0131 0 0 960 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net472 1.47μs 1.22ns 4.55ns 0.154 0 0 971 B
master RunOnMethodBegin netcoreapp3.1 1.12μs 0.965ns 3.61ns 0.0129 0 0 960 B
#3599 RunOnMethodBegin net472 1.44μs 1.36ns 5.27ns 0.154 0 0 971 B
#3599 RunOnMethodBegin netcoreapp3.1 1.17μs 0.994ns 3.85ns 0.0129 0 0 960 B

andrewlock avatar Dec 22 '22 20:12 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 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 754μs 344ns 1.29μs 0.381 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 556μs 137ns 493ns 0 0 0 2.62 KB
#3599 WriteAndFlushEnrichedTraces net472 768μs 364ns 1.36μs 0.377 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 543μs 296ns 1.15μs 0 0 0 2.63 KB
Benchmarks.Trace.AppSecBodyBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 25μs 129ns 591ns 0.274 0 0 1.78 KB
master AllCycleSimpleBody netcoreapp3.1 22.9μs 67.4ns 261ns 0.0115 0 0 1.65 KB
master AllCycleMoreComplexBody net472 194μs 545ns 2.11μs 2.02 0 0 13.03 KB
master AllCycleMoreComplexBody netcoreapp3.1 181μs 595ns 2.3μs 0.0885 0 0 12.11 KB
master BodyExtractorSimpleBody net472 279ns 0.151ns 0.564ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 237ns 0.1ns 0.361ns 0.0037 0 0 272 B
master BodyExtractorMoreComplexBody net472 15.8μs 11.8ns 45.6ns 1.21 0.0158 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.6μs 7.22ns 28ns 0.0942 0 0 6.75 KB
#3599 AllCycleSimpleBody net472 25.2μs 21ns 81.4ns 0.277 0 0 1.78 KB
#3599 AllCycleSimpleBody netcoreapp3.1 22.5μs 126ns 837ns 0.0213 0 0 1.65 KB
#3599 AllCycleMoreComplexBody net472 195μs 651ns 2.52μs 2.02 0 0 13.03 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 185μs 488ns 1.83μs 0.0918 0 0 12.11 KB
#3599 BodyExtractorSimpleBody net472 290ns 0.452ns 1.69ns 0.0573 0 0 361 B
#3599 BodyExtractorSimpleBody netcoreapp3.1 233ns 0.0633ns 0.228ns 0.00377 0 0 272 B
#3599 BodyExtractorMoreComplexBody net472 15.9μs 13.4ns 51.8ns 1.21 0.0159 0 7.62 KB
#3599 BodyExtractorMoreComplexBody netcoreapp3.1 12.7μs 4.25ns 16.5ns 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 196μs 939ns 4.09μs 0.287 0 0 20.95 KB
#3599 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 195μs 968ns 4.11μs 0.192 0 0 20.95 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.92μs 1.54ns 5.98ns 0.163 0.000972 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 1.41μs 0.92ns 3.56ns 0.014 0 0 1.02 KB
#3599 ExecuteNonQuery net472 1.88μs 1.32ns 5.12ns 0.162 0.000945 0 1.03 KB
#3599 ExecuteNonQuery netcoreapp3.1 1.42μs 0.876ns 3.39ns 0.0135 0 0 1.02 KB
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.88ns 3.29ns 0.196 0 0 1.24 KB
master CallElasticsearch netcoreapp3.1 1.55μs 0.886ns 3.32ns 0.0161 0 0 1.18 KB
master CallElasticsearchAsync net472 2.48μs 1ns 3.74ns 0.218 0 0 1.37 KB
master CallElasticsearchAsync netcoreapp3.1 1.59μs 0.474ns 1.77ns 0.0175 0 0 1.3 KB
#3599 CallElasticsearch net472 2.41μs 0.827ns 3.2ns 0.196 0 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.53μs 0.651ns 2.44ns 0.0154 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.66μs 0.607ns 2.19ns 0.218 0 0 1.37 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.57μs 0.689ns 2.58ns 0.0173 0 0 1.3 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.76μs 0.93ns 3.35ns 0.238 0 0 1.5 KB
master ExecuteAsync netcoreapp3.1 1.74μs 0.844ns 3.16ns 0.0191 0 0 1.42 KB
#3599 ExecuteAsync net472 2.62μs 1.37ns 5.12ns 0.238 0 0 1.5 KB
#3599 ExecuteAsync netcoreapp3.1 1.75μs 0.625ns 2.34ns 0.0189 0 0 1.42 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 7.28μs 2.85ns 11ns 0.559 0 0 3.54 KB
master SendAsync netcoreapp3.1 4.57μs 1.7ns 6.59ns 0.0434 0 0 3.21 KB
#3599 SendAsync net472 7.21μs 1.96ns 7.33ns 0.559 0 0 3.54 KB
#3599 SendAsync netcoreapp3.1 4.74μs 1.97ns 7.64ns 0.0425 0 0 3.21 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.9μs 4.76ns 18.4ns 0.301 0 0 1.9 KB
master EnrichedLog netcoreapp3.1 2.29μs 1.28ns 4.6ns 0.0262 0 0 1.93 KB
#3599 EnrichedLog net472 2.95μs 3.85ns 14.9ns 0.301 0 0 1.9 KB
#3599 EnrichedLog netcoreapp3.1 2.26μs 1.48ns 5.72ns 0.0268 0 0 1.93 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 138ns 536ns 0.742 0.223 0 4.74 KB
master EnrichedLog netcoreapp3.1 120μs 328ns 1.27μs 0.0598 0 0 4.58 KB
#3599 EnrichedLog net472 149μs 122ns 458ns 0.74 0.222 0 4.74 KB
#3599 EnrichedLog netcoreapp3.1 117μs 123ns 476ns 0 0 0 4.58 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.51μs 2.86ns 11.1ns 0.584 0.00273 0 3.68 KB
master EnrichedLog netcoreapp3.1 4.23μs 1.95ns 7.54ns 0.0549 0 0 4 KB
#3599 EnrichedLog net472 5.58μs 1.67ns 6.47ns 0.584 0.00279 0 3.68 KB
#3599 EnrichedLog netcoreapp3.1 4.24μs 1.47ns 5.5ns 0.0531 0 0 4 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net472 2.34μs 2.71ns 9.78ns 0.231 0 0 1.45 KB
master SendReceive netcoreapp3.1 1.76μs 0.735ns 2.85ns 0.0192 0 0 1.4 KB
#3599 SendReceive net472 2.15μs 3.12ns 12.1ns 0.23 0 0 1.45 KB
#3599 SendReceive netcoreapp3.1 1.9μs 1.09ns 4.2ns 0.0189 0 0 1.4 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.12ns 4.19ns 0.366 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 4.09μs 2ns 7.48ns 0.0246 0 0 1.89 KB
#3599 EnrichedLog net472 4.71μs 2.04ns 7.63ns 0.368 0 0 2.32 KB
#3599 EnrichedLog netcoreapp3.1 4.15μs 3.05ns 11.4ns 0.025 0 0 1.89 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.23μs 1.4ns 5.41ns 0.141 0 0 891 B
master StartFinishSpan netcoreapp3.1 940ns 1.59ns 6.17ns 0.0115 0 0 840 B
master StartFinishScope net472 1.33μs 0.572ns 2.22ns 0.154 0 0 971 B
master StartFinishScope netcoreapp3.1 1.06μs 0.402ns 1.5ns 0.0133 0 0 960 B
#3599 StartFinishSpan net472 1.15μs 0.127ns 0.457ns 0.141 0 0 891 B
#3599 StartFinishSpan netcoreapp3.1 978ns 0.254ns 0.949ns 0.0112 0 0 840 B
#3599 StartFinishScope net472 1.37μs 0.786ns 2.72ns 0.154 0 0 971 B
#3599 StartFinishScope netcoreapp3.1 1.03μs 0.405ns 1.51ns 0.0133 0 0 960 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net472 1.47μs 1.22ns 4.55ns 0.154 0 0 971 B
master RunOnMethodBegin netcoreapp3.1 1.12μs 0.965ns 3.61ns 0.0129 0 0 960 B
#3599 RunOnMethodBegin net472 1.47μs 0.419ns 1.51ns 0.154 0 0 971 B
#3599 RunOnMethodBegin netcoreapp3.1 1.1μs 0.319ns 1.19ns 0.0131 0 0 960 B

andrewlock avatar Dec 22 '22 22:12 andrewlock

Datadog Report

Branch report: lpimentel/refactor-span-context-1 Commit report: 9cd73b4

:x: dd-trace-dotnet 1 Failed (0 Known Flaky), 0 New Flaky, 228294 Passed, 684 Skipped, 20m 16.44s Wall Time

:x: Failed Tests (1)

  • TestIastNotWeakRequest - Datadog.Trace.Security.IntegrationTests.Iast.AspNetCore5IastTests - Details

    Expand for error
    esults do not match.
    ifferences:
    eceived: Iast.NotWeak.AspNetCore5.IastEnabled.received.txt
    erified: Iast.NotWeak.AspNetCore5.IastEnabled.verified.txt
    eceived Content:
    
     {
       TraceId: Id_1,
       SpanId: Id_2,
       Name: aspnet_core.request,
    ..
    

datadog-ddstaging[bot] avatar Jan 04 '23 21:01 datadog-ddstaging[bot]

Benchmarks Report :snail:

Benchmarks for #3599 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.133
  • 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 771μs 542ns 2.1μs 0.383 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 558μs 692ns 2.59μs 0 0 0 2.62 KB
#3599 WriteAndFlushEnrichedTraces net472 760μs 594ns 2.14μs 0.381 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 553μs 373ns 1.4μs 0 0 0 2.62 KB
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3599

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.133 25,343.39 22,374.28 several?

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 25.3μs 14.2ns 55ns 0.277 0 0 1.78 KB
master AllCycleSimpleBody netcoreapp3.1 24.3μs 42.2ns 158ns 0.0121 0 0 1.65 KB
master AllCycleMoreComplexBody net472 191μs 70.9ns 265ns 2.02 0 0 13.03 KB
master AllCycleMoreComplexBody netcoreapp3.1 181μs 736ns 2.85μs 0.0914 0 0 12.11 KB
master BodyExtractorSimpleBody net472 293ns 0.36ns 1.39ns 0.0573 0 0 361 B
master BodyExtractorSimpleBody netcoreapp3.1 237ns 0.109ns 0.406ns 0.00375 0 0 272 B
master BodyExtractorMoreComplexBody net472 16.5μs 20.1ns 77.7ns 1.21 0.0165 0 7.62 KB
master BodyExtractorMoreComplexBody netcoreapp3.1 12.6μs 5.21ns 18.8ns 0.088 0 0 6.75 KB
#3599 AllCycleSimpleBody net472 23.3μs 138ns 1.36μs 0.279 0 0 1.78 KB
#3599 AllCycleSimpleBody netcoreapp3.1 23.4μs 127ns 705ns 0.0231 0 0 1.65 KB
#3599 AllCycleMoreComplexBody net472 193μs 91.5ns 354ns 2.02 0 0 13.03 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 182μs 649ns 2.43μs 0.0885 0 0 12.11 KB
#3599 BodyExtractorSimpleBody net472 288ns 0.333ns 1.29ns 0.0574 0 0 361 B
#3599 BodyExtractorSimpleBody netcoreapp3.1 235ns 0.154ns 0.575ns 0.00372 0 0 272 B
#3599 BodyExtractorMoreComplexBody net472 16.7μs 13ns 50.2ns 1.2 0.0167 0 7.62 KB
#3599 BodyExtractorMoreComplexBody netcoreapp3.1 12.5μs 5.59ns 21.6ns 0.0875 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 257μs 1.46μs 10.5μs 0.235 0 0 20.96 KB
#3599 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 271μs 1.58μs 14.9μs 0.257 0 0 20.96 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.18ns 12.3ns 0.163 0.000979 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 1.45μs 2.55ns 9.87ns 0.0138 0 0 1.02 KB
#3599 ExecuteNonQuery net472 1.92μs 2.42ns 9.39ns 0.163 0.000962 0 1.03 KB
#3599 ExecuteNonQuery netcoreapp3.1 1.46μs 5.36ns 20.8ns 0.0136 0 0 1.02 KB
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.46μs 0.804ns 3.11ns 0.195 0 0 1.24 KB
master CallElasticsearch netcoreapp3.1 1.56μs 0.707ns 2.65ns 0.0157 0 0 1.18 KB
master CallElasticsearchAsync net472 2.61μs 0.914ns 3.42ns 0.217 0 0 1.37 KB
master CallElasticsearchAsync netcoreapp3.1 1.58μs 0.694ns 2.5ns 0.0173 0 0 1.3 KB
#3599 CallElasticsearch net472 2.51μs 1.11ns 4.17ns 0.196 0 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.55μs 0.635ns 2.29ns 0.0163 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.57μs 5.18ns 20.1ns 0.218 0 0 1.37 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.6μs 0.582ns 2.26ns 0.0175 0 0 1.3 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 1.27ns 4.91ns 0.238 0 0 1.5 KB
master ExecuteAsync netcoreapp3.1 1.76μs 0.954ns 3.57ns 0.0193 0 0 1.42 KB
#3599 ExecuteAsync net472 2.7μs 0.592ns 2.14ns 0.238 0 0 1.5 KB
#3599 ExecuteAsync netcoreapp3.1 1.7μs 0.528ns 1.97ns 0.0196 0 0 1.42 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 7.28μs 2.75ns 10.6ns 0.561 0 0 3.54 KB
master SendAsync netcoreapp3.1 4.58μs 2.37ns 9.19ns 0.0436 0 0 3.21 KB
#3599 SendAsync net472 7.25μs 3.02ns 10.5ns 0.562 0 0 3.54 KB
#3599 SendAsync netcoreapp3.1 4.64μs 1.53ns 5.71ns 0.0442 0 0 3.21 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.76μs 2.82ns 10.9ns 0.301 0 0 1.9 KB
master EnrichedLog netcoreapp3.1 2.24μs 1.77ns 6.61ns 0.0268 0 0 1.93 KB
#3599 EnrichedLog net472 2.66μs 1.41ns 5.29ns 0.302 0 0 1.9 KB
#3599 EnrichedLog netcoreapp3.1 2.3μs 0.751ns 2.81ns 0.0262 0 0 1.93 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 146μs 83.1ns 288ns 0.732 0.22 0 4.74 KB
master EnrichedLog netcoreapp3.1 117μs 180ns 699ns 0.0583 0 0 4.58 KB
#3599 EnrichedLog net472 148μs 110ns 424ns 0.743 0.223 0 4.74 KB
#3599 EnrichedLog netcoreapp3.1 118μs 176ns 681ns 0.0587 0 0 4.58 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.55μs 3ns 11.2ns 0.582 0.00278 0 3.68 KB
master EnrichedLog netcoreapp3.1 4.17μs 1.34ns 5.19ns 0.0544 0 0 4 KB
#3599 EnrichedLog net472 5.63μs 2.08ns 7.77ns 0.583 0.00279 0 3.68 KB
#3599 EnrichedLog netcoreapp3.1 4.17μs 1.54ns 5.54ns 0.0542 0 0 4 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net472 2.34μs 3.63ns 14ns 0.23 0 0 1.45 KB
master SendReceive netcoreapp3.1 1.76μs 1.41ns 5.48ns 0.0194 0 0 1.4 KB
#3599 SendReceive net472 2.23μs 1.98ns 7.13ns 0.23 0 0 1.45 KB
#3599 SendReceive netcoreapp3.1 1.91μs 1.77ns 6.87ns 0.019 0 0 1.4 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.46ns 5.45ns 0.367 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 3.96μs 2.13ns 8.25ns 0.0238 0 0 1.89 KB
#3599 EnrichedLog net472 4.68μs 1.85ns 7.17ns 0.368 0 0 2.32 KB
#3599 EnrichedLog netcoreapp3.1 4.09μs 1.31ns 4.89ns 0.0245 0 0 1.89 KB
Benchmarks.Trace.SpanBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 1.16μs 0.842ns 3.15ns 0.141 0 0 891 B
master StartFinishSpan netcoreapp3.1 923ns 3.7ns 14.3ns 0.0112 0 0 840 B
master StartFinishScope net472 1.4μs 1.54ns 5.98ns 0.154 0 0 971 B
master StartFinishScope netcoreapp3.1 1.09μs 1.05ns 3.92ns 0.0129 0 0 960 B
#3599 StartFinishSpan net472 1.16μs 0.696ns 2.7ns 0.141 0 0 891 B
#3599 StartFinishSpan netcoreapp3.1 901ns 0.354ns 1.28ns 0.0112 0 0 840 B
#3599 StartFinishScope net472 1.28μs 0.478ns 1.85ns 0.154 0 0 971 B
#3599 StartFinishScope netcoreapp3.1 1.08μs 0.287ns 1.07ns 0.0129 0 0 960 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.46μs 1.38ns 5.34ns 0.154 0 0 971 B
master RunOnMethodBegin netcoreapp3.1 1.16μs 0.341ns 1.28ns 0.0134 0 0 960 B
#3599 RunOnMethodBegin net472 1.46μs 0.7ns 2.62ns 0.154 0 0 971 B
#3599 RunOnMethodBegin netcoreapp3.1 1.16μs 1.39ns 5.19ns 0.0128 0 0 960 B

andrewlock avatar Jan 04 '23 22:01 andrewlock

Code Coverage Report :bar_chart:

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

master #3599 Change
Lines 20926 / 29470 20971 / 29490
Lines % 71% 71% 0% :heavy_check_mark:
Branches 12543 / 18985 12568 / 19003
Branches % 66% 66% 0% :heavy_check_mark:
Complexity 20482 20506 24 :no_entry:

View the full report for further details:

Datadog.Trace Breakdown :heavy_check_mark:

master #3599 Change
Lines % 71% 71% 0% :heavy_check_mark:
Branches % 66% 66% 0% :heavy_check_mark:
Complexity 20482 20506 24 :no_entry:

The following classes have significant coverage changes.

File Line coverage change Branch coverage change Complexity change
Datadog.Trace.ClrProfiler.AutoInstrumentation.Couchbase.ClusterNodeIntegrationTer 0% :heavy_check_mark: -100% :no_entry: 1 :no_entry:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Couchbase.ClusterNodeIntegrationBis 0% :heavy_check_mark: -50% :no_entry: 1 :no_entry:
Datadog.Trace.ClrProfiler.AutoInstrumentation.Couchbase.ClusterNodeIntegration 0% :heavy_check_mark: -17% :no_entry: 11 :no_entry:
Datadog.Trace.Ci.GitInfo 11% :heavy_check_mark: 8% :heavy_check_mark: 0 :heavy_check_mark:

View the full reports for further details:

andrewlock avatar Jan 04 '23 22:01 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 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 767μs 926ns 3.58μs 0.383 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 561μs 404ns 1.51μs 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 779μs 664ns 2.48μs 0.388 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 564μs 565ns 2.19μs 0 0 0 2.63 KB
Benchmarks.Trace.AppSecBodyBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 23μs 133ns 1.11μs 0.274 0 0 1.78 KB
master AllCycleSimpleBody netcoreapp3.1 23.1μs 122ns 599ns 0.0116 0 0 1.65 KB
master AllCycleMoreComplexBody net472 196μs 615ns 2.3μs 2.02 0 0 13.03 KB
master AllCycleMoreComplexBody netcoreapp3.1 187μs 795ns 3.08μs 0.0946 0 0 12.11 KB
master ObjectExtractorSimpleBody net472 302ns 0.54ns 2.09ns 0.0573 0 0 361 B
master ObjectExtractorSimpleBody netcoreapp3.1 239ns 0.163ns 0.588ns 0.0037 0 0 272 B
master ObjectExtractorMoreComplexBody net472 16.5μs 11.1ns 43.1ns 1.2 0.0165 0 7.62 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 13μs 3.01ns 11.3ns 0.0906 0 0 6.75 KB
#3599 AllCycleSimpleBody net472 24.6μs 158ns 1.58μs 0.278 0 0 1.78 KB
#3599 AllCycleSimpleBody netcoreapp3.1 22.4μs 122ns 734ns 0.0211 0 0 1.65 KB
#3599 AllCycleMoreComplexBody net472 194μs 614ns 2.38μs 2 0 0 13.03 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 182μs 377ns 1.46μs 0.091 0 0 12.11 KB
#3599 ObjectExtractorSimpleBody net472 283ns 0.422ns 1.64ns 0.0573 0 0 361 B
#3599 ObjectExtractorSimpleBody netcoreapp3.1 235ns 0.185ns 0.668ns 0.00378 0 0 272 B
#3599 ObjectExtractorMoreComplexBody net472 15.5μs 5.13ns 19.2ns 1.21 0.0156 0 7.62 KB
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 12.6μs 6.16ns 23ns 0.0945 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 310μs 1.97μs 19.7μs 0.149 0 0 20.96 KB
#3599 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 314μs 1.76μs 11.8μs 0.158 0 0 20.96 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.83μs 2.49ns 9.64ns 0.162 0.000923 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 1.46μs 1.19ns 4.44ns 0.0137 0 0 1.02 KB
#3599 ExecuteNonQuery net472 1.84μs 2.93ns 11.3ns 0.163 0.00092 0 1.03 KB
#3599 ExecuteNonQuery netcoreapp3.1 1.41μs 1.66ns 6.22ns 0.0139 0 0 1.02 KB
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.47μs 1.25ns 4.84ns 0.196 0 0 1.24 KB
master CallElasticsearch netcoreapp3.1 1.58μs 0.523ns 1.96ns 0.0151 0 0 1.18 KB
master CallElasticsearchAsync net472 2.57μs 1.08ns 4.17ns 0.217 0 0 1.37 KB
master CallElasticsearchAsync netcoreapp3.1 1.65μs 0.559ns 2.09ns 0.0174 0 0 1.3 KB
#3599 CallElasticsearch net472 2.43μs 0.718ns 2.69ns 0.195 0 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.53μs 0.583ns 2.18ns 0.0161 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.57μs 0.947ns 3.67ns 0.217 0 0 1.37 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.63μs 0.365ns 1.37ns 0.0172 0 0 1.3 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net472 2.77μs 6.54ns 25.3ns 0.238 0 0 1.5 KB
master ExecuteAsync netcoreapp3.1 1.84μs 2.7ns 10.4ns 0.0199 0 0 1.42 KB
#3599 ExecuteAsync net472 2.77μs 1.16ns 4.49ns 0.237 0 0 1.5 KB
#3599 ExecuteAsync netcoreapp3.1 1.71μs 0.461ns 1.73ns 0.0187 0 0 1.42 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 7.23μs 3.07ns 11.9ns 0.555 0 0 3.51 KB
master SendAsync netcoreapp3.1 4.61μs 1.52ns 5.69ns 0.0436 0 0 3.21 KB
#3599 SendAsync net472 7.18μs 1.82ns 6.81ns 0.557 0 0 3.51 KB
#3599 SendAsync netcoreapp3.1 4.76μs 1.23ns 4.6ns 0.0429 0 0 3.21 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 3.29ns 12.7ns 0.302 0 0 1.9 KB
master EnrichedLog netcoreapp3.1 2.18μs 0.726ns 2.81ns 0.0264 0 0 1.93 KB
#3599 EnrichedLog net472 2.73μs 2.36ns 9.15ns 0.301 0 0 1.9 KB
#3599 EnrichedLog netcoreapp3.1 2.3μs 1.1ns 4.12ns 0.0263 0 0 1.93 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 110ns 427ns 0.741 0.222 0 4.74 KB
master EnrichedLog netcoreapp3.1 117μs 93.6ns 363ns 0.0583 0 0 4.58 KB
#3599 EnrichedLog net472 147μs 80.6ns 312ns 0.734 0.22 0 4.74 KB
#3599 EnrichedLog netcoreapp3.1 117μs 228ns 885ns 0.0581 0 0 4.58 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.57μs 2.16ns 8.38ns 0.582 0.00276 0 3.68 KB
master EnrichedLog netcoreapp3.1 4.2μs 2.06ns 7.71ns 0.0546 0 0 4 KB
#3599 EnrichedLog net472 5.54μs 4.72ns 16.4ns 0.583 0.00278 0 3.68 KB
#3599 EnrichedLog netcoreapp3.1 4.16μs 1.99ns 7.44ns 0.054 0 0 4 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.18μs 1.75ns 6.76ns 0.231 0 0 1.45 KB
master SendReceive netcoreapp3.1 1.76μs 1.07ns 4.16ns 0.0194 0 0 1.4 KB
#3599 SendReceive net472 2.15μs 1.36ns 4.89ns 0.23 0 0 1.45 KB
#3599 SendReceive netcoreapp3.1 1.74μs 0.774ns 2.89ns 0.0192 0 0 1.4 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.81μs 2.23ns 8.63ns 0.367 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 4.06μs 3.42ns 12.8ns 0.0261 0 0 1.89 KB
#3599 EnrichedLog net472 4.68μs 1.37ns 5.3ns 0.367 0 0 2.32 KB
#3599 EnrichedLog netcoreapp3.1 3.83μs 1.67ns 6.25ns 0.0249 0 0 1.89 KB
Benchmarks.Trace.SpanBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net472 1.1μs 0.326ns 1.22ns 0.141 0 0 891 B
master StartFinishSpan netcoreapp3.1 900ns 1.98ns 7.39ns 0.0115 0 0 840 B
master StartFinishScope net472 1.38μs 0.592ns 2.21ns 0.154 0 0 971 B
master StartFinishScope netcoreapp3.1 1.05μs 0.507ns 1.96ns 0.0131 0 0 960 B
#3599 StartFinishSpan net472 1.16μs 0.283ns 1.06ns 0.141 0 0 891 B
#3599 StartFinishSpan netcoreapp3.1 879ns 0.309ns 1.16ns 0.0114 0 0 840 B
#3599 StartFinishScope net472 1.29μs 0.31ns 1.2ns 0.154 0 0 971 B
#3599 StartFinishScope netcoreapp3.1 1.09μs 0.424ns 1.64ns 0.0131 0 0 960 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.42μs 0.481ns 1.86ns 0.154 0 0 971 B
master RunOnMethodBegin netcoreapp3.1 1.14μs 0.48ns 1.73ns 0.0132 0 0 960 B
#3599 RunOnMethodBegin net472 1.44μs 0.238ns 0.892ns 0.154 0 0 971 B
#3599 RunOnMethodBegin netcoreapp3.1 1.09μs 0.468ns 1.75ns 0.0131 0 0 960 B

andrewlock avatar Jan 09 '23 15:01 andrewlock

Throughput/Crank Report:zap:

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (6.035M)   : 0, 6034863
    master (6.104M)   : 0, 6103912
    benchmarks/2.21.0 (6.205M)   : 0, 6204945
    benchmarks/2.9.0 (6.030M)   : 0, 6030161

    section Instrumented
    This PR (3599) (4.081M)   : 0, 4081116
    master (4.072M)   : 0, 4072491
    benchmarks/2.21.0 (4.215M)   : 0, 4214747
    benchmarks/2.9.0 (4.232M)   : 0, 4232281

    section Trace stats
    master (4.096M)   : 0, 4096299
    benchmarks/2.21.0 (4.162M)   : 0, 4161894

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (5.148M)   : 0, 5148104
    master (5.277M)   : 0, 5276980
    benchmarks/2.21.0 (5.432M)   : 0, 5431773
    benchmarks/2.9.0 (5.395M)   : 0, 5394636

    section Instrumented
    This PR (3599) (3.660M)   : 0, 3660215
    master (3.614M)   : 0, 3613860
    benchmarks/2.21.0 (3.825M)   : 0, 3824781

    section Trace stats
    master (3.681M)   : 0, 3681378
    benchmarks/2.21.0 (3.789M)   : 0, 3788842

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (6.602M)   : 0, 6601652
    master (6.492M)   : 0, 6492300
    benchmarks/2.21.0 (6.515M)   : 0, 6515100
    benchmarks/2.9.0 (6.555M)   : 0, 6554950

    section Instrumented
    This PR (3599) (4.499M)   : 0, 4498779
    master (4.405M)   : 0, 4405086
    benchmarks/2.21.0 (4.425M)   : 0, 4424541
    benchmarks/2.9.0 (4.522M)   : 0, 4521536

    section Trace stats
    master (4.415M)   : 0, 4414829
    benchmarks/2.21.0 (4.435M)   : 0, 4434564

gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (3.509M)   : 0, 3508954
    master (3.524M)   : 0, 3524308
    benchmarks/2.21.0 (3.540M)   : 0, 3540047
    benchmarks/2.9.0 (3.752M)   : 0, 3751614

    section No attack
    This PR (3599) (1.275M)   : 0, 1275109
    master (1.250M)   : 0, 1250245
    benchmarks/2.21.0 (1.265M)   : 0, 1264590
    benchmarks/2.9.0 (1.269M)   : 0, 1269112

    section Attack
    This PR (3599) (1.081M)   : 0, 1080994
    master (1.086M)   : 0, 1086104
    benchmarks/2.21.0 (1.106M)   : 0, 1105920
    benchmarks/2.9.0 (1.107M)   : 0, 1106923

    section Blocking
    This PR (3599) (2.112M)   : 0, 2112054
    master (2.130M)   : 0, 2129945
    benchmarks/2.21.0 (2.171M)   : 0, 2170880

andrewlock avatar Jan 09 '23 16:01 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 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 764μs 763ns 2.85μs 0.383 0 0 3.22 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 552μs 513ns 1.92μs 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 764μs 1μs 3.76μs 0.379 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 557μs 594ns 2.3μs 0 0 0 2.63 KB
Benchmarks.Trace.AppSecBodyBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net472 25.2μs 23.3ns 87.1ns 0.282 0 0 1.78 KB
master AllCycleSimpleBody netcoreapp3.1 22.2μs 130ns 1.29μs 0.0121 0 0 1.65 KB
master AllCycleMoreComplexBody net472 193μs 111ns 416ns 2.03 0 0 13.03 KB
master AllCycleMoreComplexBody netcoreapp3.1 182μs 558ns 2.16μs 0.0885 0 0 12.11 KB
master ObjectExtractorSimpleBody net472 289ns 0.327ns 1.27ns 0.0572 0 0 361 B
master ObjectExtractorSimpleBody netcoreapp3.1 243ns 0.136ns 0.526ns 0.00378 0 0 272 B
master ObjectExtractorMoreComplexBody net472 16.7μs 6.43ns 24.9ns 1.21 0.0167 0 7.62 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 12.8μs 6.62ns 25.7ns 0.0891 0 0 6.75 KB
#3599 AllCycleSimpleBody net472 25μs 14.8ns 53.4ns 0.28 0 0 1.78 KB
#3599 AllCycleSimpleBody netcoreapp3.1 23.6μs 26.8ns 100ns 0.012 0 0 1.65 KB
#3599 AllCycleMoreComplexBody net472 191μs 49.9ns 193ns 2 0 0 13.03 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 182μs 636ns 2.46μs 0.0895 0 0 12.11 KB
#3599 ObjectExtractorSimpleBody net472 284ns 0.516ns 1.93ns 0.0573 0 0 361 B
#3599 ObjectExtractorSimpleBody netcoreapp3.1 227ns 0.197ns 0.737ns 0.00378 0 0 272 B
#3599 ObjectExtractorMoreComplexBody net472 15.7μs 9ns 32.4ns 1.21 0.0158 0 7.62 KB
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 12.8μs 14.7ns 57ns 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 304μs 1.65μs 9.92μs 0.226 0 0 20.96 KB
#3599 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 283μs 1.51μs 9.41μs 0.135 0 0 20.96 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.83μs 2.28ns 8.54ns 0.163 0.000897 0 1.03 KB
master ExecuteNonQuery netcoreapp3.1 1.48μs 2.65ns 9.91ns 0.0134 0 0 1.02 KB
#3599 ExecuteNonQuery net472 1.83μs 1.73ns 6.47ns 0.163 0.000914 0 1.03 KB
#3599 ExecuteNonQuery netcoreapp3.1 1.46μs 3.49ns 13.5ns 0.0139 0 0 1.02 KB
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.3μs 1.09ns 3.92ns 0.196 0 0 1.24 KB
master CallElasticsearch netcoreapp3.1 1.59μs 1.38ns 5.36ns 0.0159 0 0 1.18 KB
master CallElasticsearchAsync net472 2.47μs 0.622ns 2.33ns 0.218 0 0 1.37 KB
master CallElasticsearchAsync netcoreapp3.1 1.6μs 2.13ns 7.98ns 0.0177 0 0 1.3 KB
#3599 CallElasticsearch net472 2.4μs 1.3ns 5.03ns 0.196 0 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.5μs 0.519ns 2.01ns 0.0158 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.48μs 0.646ns 2.5ns 0.217 0 0 1.37 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.61μs 0.285ns 0.989ns 0.0178 0 0 1.3 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.75μs 0.765ns 2.96ns 0.238 0 0 1.5 KB
master ExecuteAsync netcoreapp3.1 1.76μs 0.69ns 2.58ns 0.0195 0 0 1.42 KB
#3599 ExecuteAsync net472 2.79μs 0.613ns 2.29ns 0.237 0 0 1.5 KB
#3599 ExecuteAsync netcoreapp3.1 1.78μs 3.24ns 12.6ns 0.0186 0 0 1.42 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 7.24μs 1.87ns 7.25ns 0.556 0 0 3.51 KB
master SendAsync netcoreapp3.1 4.64μs 1.6ns 5.98ns 0.0419 0 0 3.21 KB
#3599 SendAsync net472 7.28μs 2.44ns 9.14ns 0.558 0 0 3.51 KB
#3599 SendAsync netcoreapp3.1 4.58μs 1.6ns 5.98ns 0.0435 0 0 3.21 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.72μs 1.04ns 3.9ns 0.301 0 0 1.9 KB
master EnrichedLog netcoreapp3.1 2.23μs 0.804ns 3.11ns 0.0267 0 0 1.93 KB
#3599 EnrichedLog net472 2.71μs 2.13ns 7.68ns 0.302 0 0 1.9 KB
#3599 EnrichedLog netcoreapp3.1 2.23μs 0.793ns 2.97ns 0.0265 0 0 1.93 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 191ns 741ns 0.749 0.225 0 4.74 KB
master EnrichedLog netcoreapp3.1 119μs 132ns 510ns 0.0594 0 0 4.58 KB
#3599 EnrichedLog net472 149μs 231ns 896ns 0.741 0.222 0 4.74 KB
#3599 EnrichedLog netcoreapp3.1 118μs 206ns 771ns 0.0584 0 0 4.58 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.53μs 1.75ns 6.77ns 0.581 0.00277 0 3.68 KB
master EnrichedLog netcoreapp3.1 4.23μs 2.21ns 8.55ns 0.0546 0 0 4 KB
#3599 EnrichedLog net472 5.53μs 1.09ns 4.24ns 0.584 0.00275 0 3.68 KB
#3599 EnrichedLog netcoreapp3.1 4.21μs 2.42ns 9.06ns 0.0548 0 0 4 KB
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net472 2.21μs 2.06ns 7.98ns 0.23 0 0 1.45 KB
master SendReceive netcoreapp3.1 1.85μs 2.28ns 8.54ns 0.0194 0 0 1.4 KB
#3599 SendReceive net472 2.12μs 1.07ns 4.02ns 0.23 0 0 1.45 KB
#3599 SendReceive netcoreapp3.1 1.8μs 0.962ns 3.73ns 0.0189 0 0 1.4 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.85ns 7.16ns 0.367 0 0 2.32 KB
master EnrichedLog netcoreapp3.1 3.85μs 1.03ns 3.73ns 0.0251 0 0 1.89 KB
#3599 EnrichedLog net472 4.76μs 1.38ns 5.15ns 0.368 0 0 2.32 KB
#3599 EnrichedLog netcoreapp3.1 4.14μs 1.1ns 3.98ns 0.0248 0 0 1.89 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.11μs 0.361ns 1.4ns 0.141 0 0 891 B
master StartFinishSpan netcoreapp3.1 902ns 0.187ns 0.7ns 0.0112 0 0 840 B
master StartFinishScope net472 1.37μs 0.572ns 2.21ns 0.154 0 0 971 B
master StartFinishScope netcoreapp3.1 1.09μs 5.01ns 19.4ns 0.013 0 0 960 B
#3599 StartFinishSpan net472 1.15μs 0.193ns 0.723ns 0.141 0 0 891 B
#3599 StartFinishSpan netcoreapp3.1 892ns 0.18ns 0.649ns 0.0115 0 0 840 B
#3599 StartFinishScope net472 1.34μs 0.687ns 2.66ns 0.154 0 0 971 B
#3599 StartFinishScope netcoreapp3.1 1.09μs 1.65ns 6.38ns 0.0126 0 0 960 B
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net472 1.49μs 4.84ns 19.3ns 0.154 0 0 971 B
master RunOnMethodBegin netcoreapp3.1 1.16μs 0.474ns 1.83ns 0.0135 0 0 960 B
#3599 RunOnMethodBegin net472 1.47μs 0.67ns 2.51ns 0.154 0 0 971 B
#3599 RunOnMethodBegin netcoreapp3.1 1.17μs 1.09ns 4.09ns 0.0128 0 0 960 B

andrewlock avatar Jan 11 '23 16:01 andrewlock

Throughput/Crank Report:zap:

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (6.045M)   : 0, 6045036
    master (6.079M)   : 0, 6078737
    benchmarks/2.21.0 (6.107M)   : 0, 6107326
    benchmarks/2.9.0 (6.130M)   : 0, 6129993

    section Instrumented
    This PR (3599) (4.120M)   : 0, 4120302
    master (4.009M)   : 0, 4008894
    benchmarks/2.21.0 (4.112M)   : 0, 4112431
    benchmarks/2.9.0 (4.316M)   : 0, 4316066

    section Trace stats
    master (4.008M)   : 0, 4008457
    benchmarks/2.21.0 (4.081M)   : 0, 4080966

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (5.109M)   : 0, 5108924
    master (5.128M)   : 0, 5128249
    benchmarks/2.21.0 (5.471M)   : 0, 5470796
    benchmarks/2.9.0 (4.984M)   : 0, 4984196

    section Instrumented
    This PR (3599) (3.730M)   : 0, 3730219
    master (3.694M)   : 0, 3694266
    benchmarks/2.21.0 (3.634M)   : 0, 3634472

    section Trace stats
    master (3.638M)   : 0, 3638462
    benchmarks/2.21.0 (3.758M)   : 0, 3757632

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (6.544M)   : 0, 6544441
    master (6.295M)   : 0, 6295419
    benchmarks/2.21.0 (6.645M)   : 0, 6644550
    benchmarks/2.9.0 (6.611M)   : 0, 6611412

    section Instrumented
    This PR (3599) (4.403M)   : 0, 4402649
    master (4.290M)   : 0, 4290173
    benchmarks/2.21.0 (4.540M)   : 0, 4540088
    benchmarks/2.9.0 (4.495M)   : 0, 4495373

    section Trace stats
    master (4.233M)   : 0, 4232715
    benchmarks/2.21.0 (4.515M)   : 0, 4515075

gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (2.727M)   : 0, 2726882
    master (3.475M)   : 0, 3475338
    benchmarks/2.21.0 (3.521M)   : 0, 3520907
    benchmarks/2.9.0 (3.722M)   : 0, 3721608

    section No attack
    This PR (3599) (0.581M)   : crit ,0, 581144
    master (1.273M)   : 0, 1272689
    benchmarks/2.21.0 (1.279M)   : 0, 1278665
    benchmarks/2.9.0 (1.289M)   : 0, 1288617

    section Attack
    This PR (3599) (0.497M)   : crit ,0, 496846
    master (1.076M)   : 0, 1075640
    benchmarks/2.21.0 (1.092M)   : 0, 1092230
    benchmarks/2.9.0 (1.106M)   : 0, 1106489

    section Blocking
    This PR (3599) (0.901M)   : crit ,0, 901269
    master (2.162M)   : 0, 2162212
    benchmarks/2.21.0 (2.142M)   : 0, 2142253

andrewlock avatar Jan 11 '23 16:01 andrewlock

Datadog Report

Branch report: lpimentel/refactor-span-context-1 Commit report: 0de7df2

:x: dd-trace-dotnet: 25 Failed (0 Known Flaky), 0 New Flaky, 191386 Passed, 851 Skipped, 29m 18.97s Wall Time

:x: Failed Tests (25)

This report shows up to 5 failed tests.

  • CreatesDistinctBuckets_TS003 - Datadog.Trace.Tests.Agent.StatsAggregatorTests - Details

    Expand for error
    xpected collection to contain 7 item(s), but found 6: {[
       Datadog.Trace.Agent.StatsAggregationKey
       {
           HttpStatusCode = 200, 
           IsSyntheticsRequest = False, 
           OperationName = "name", 
           Resource = "resource", 
           Service = "service", 
           Type = "http"
       }] = 
    ..
    
  • CreatesDistinctBuckets_TS003 - Datadog.Trace.Tests.Agent.StatsAggregatorTests - Details

    Expand for error
    xpected collection to contain 7 item(s), but found 6: {[
       Datadog.Trace.Agent.StatsAggregationKey
       {
           HttpStatusCode = 200, 
           IsSyntheticsRequest = False, 
           OperationName = "name", 
           Resource = "resource", 
           Service = "service", 
           Type = "http"
       }] = 
    ..
    
  • CreatesDistinctBuckets_TS003 - Datadog.Trace.Tests.Agent.StatsAggregatorTests - Details

    Expand for error
    xpected collection to contain 7 item(s), but found 6: {[
       Datadog.Trace.Agent.StatsAggregationKey
       {
           HttpStatusCode = 200, 
           IsSyntheticsRequest = False, 
           OperationName = "name", 
           Resource = "resource", 
           Service = "service", 
           Type = "http"
       }] = 
    ..
    
  • CreatesDistinctBuckets_TS003 - Datadog.Trace.Tests.Agent.StatsAggregatorTests - Details

    Expand for error
    xpected collection to contain 7 item(s), but found 6: {[
       Datadog.Trace.Agent.StatsAggregationKey
       {
           HttpStatusCode = 200, 
           IsSyntheticsRequest = False, 
           OperationName = "name", 
           Resource = "resource", 
           Service = "service", 
           Type = "http"
       }] = 
    ..
    
  • CreatesDistinctBuckets_TS003 - Datadog.Trace.Tests.Agent.StatsAggregatorTests - Details

    Expand for error
    xpected collection to contain 7 item(s), but found 6: {[
       Datadog.Trace.Agent.StatsAggregationKey
       {
           HttpStatusCode = 200, 
           IsSyntheticsRequest = False, 
           OperationName = "name", 
           Resource = "resource", 
           Service = "service", 
           Type = "http"
       }] = 
    ..
    

datadog-ddstaging[bot] avatar Apr 18 '23 21:04 datadog-ddstaging[bot]

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (2,987ms)  : 2883, 3091
     .   : milestone, 2987,
    master - mean (3,023ms)  : 2908, 3138
     .   : milestone, 3023,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,675ms)  : 3606, 3744
     .   : milestone, 3675,
    master - mean (3,686ms)  : 3622, 3749
     .   : milestone, 3686,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,144ms)  : 3003, 3284
     .   : milestone, 3144,
    master - mean (3,116ms)  : 2970, 3262
     .   : milestone, 3116,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,549ms)  : 3435, 3662
     .   : milestone, 3549,
    master - mean (3,548ms)  : 3476, 3620
     .   : milestone, 3548,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,096ms)  : 2998, 3195
     .   : milestone, 3096,
    master - mean (3,123ms)  : 3013, 3233
     .   : milestone, 3123,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,524ms)  : 3450, 3597
     .   : milestone, 3524,
    master - mean (3,521ms)  : 3413, 3629
     .   : milestone, 3521,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (187ms)  : 184, 190
     .   : milestone, 187,
    master - mean (188ms)  : 183, 192
     .   : milestone, 188,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (942ms)  : 913, 971
     .   : milestone, 942,
    master - mean (942ms)  : 913, 971
     .   : milestone, 942,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (367ms)  : 361, 373
     .   : milestone, 367,
    master - mean (368ms)  : 363, 374
     .   : milestone, 368,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,086ms)  : 1054, 1117
     .   : milestone, 1086,
    master - mean (1,089ms)  : 1068, 1111
     .   : milestone, 1089,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (355ms)  : 348, 362
     .   : milestone, 355,
    master - mean (354ms)  : 350, 358
     .   : milestone, 354,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,035ms)  : 1003, 1067
     .   : milestone, 1035,
    master - mean (1,033ms)  : 1010, 1056
     .   : milestone, 1033,

andrewlock avatar Apr 18 '23 22:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 compared to master:

  • 2 benchmarks are slower, with geometric mean 1.140
  • 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 netcoreapp3.1 588μs 394ns 1.42μs 0 0 0 2.63 KB
master WriteAndFlushEnrichedTraces net472 783μs 232ns 866ns 0.396 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 594μs 187ns 698ns 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 800μs 299ns 1.12μs 0.401 0 0 3.22 KB
Benchmarks.Trace.AppSecBodyBenchmark - Slower :warning: Same allocations :heavy_check_mark:

Slower :warning: in #3599

Benchmark diff/base Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleMoreComplexBody‑net472 1.153 267,723.55 308,793.07
Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 1.128 93,089.27 104,978.99

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody netcoreapp3.1 99μs 553ns 3.41μs 0 0 0 1.66 KB
master AllCycleSimpleBody net472 93μs 156ns 606ns 0.232 0 0 1.71 KB
master AllCycleMoreComplexBody netcoreapp3.1 273μs 342ns 1.32μs 0 0 0 9.15 KB
master AllCycleMoreComplexBody net472 268μs 122ns 440ns 1.48 0 0 9.31 KB
master ObjectExtractorSimpleBody netcoreapp3.1 168ns 0.0737ns 0.276ns 0.00371 0 0 272 B
master ObjectExtractorSimpleBody net472 147ns 0.152ns 0.589ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.06μs 1.75ns 6.56ns 0.0506 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.12μs 3.48ns 13.5ns 0.616 0.00619 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 103μs 385ns 1.49μs 0 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 103μs 572ns 3.39μs 0.236 0 0 1.71 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 273μs 1.33μs 9.34μs 0 0 0 9.14 KB
#3599 AllCycleMoreComplexBody net472 301μs 1.74μs 14.5μs 1.46 0 0 9.31 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 165ns 0.0334ns 0.125ns 0.00362 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 145ns 0.134ns 0.521ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 4μs 1.5ns 5.8ns 0.0521 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.19μs 2.61ns 10.1ns 0.617 0.00628 0 3.89 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 netcoreapp3.1 183μs 330ns 1.23μs 0.182 0 0 20.36 KB
master SendRequest net472 0.00151ns 0.000506ns 0.00196ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 184μs 192ns 744ns 0.184 0 0 20.36 KB
#3599 SendRequest net472 0.00336ns 0.00146ns 0.00564ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 610μs 1.13μs 4.22μs 0.312 0 0 41.72 KB
master WriteAndFlushEnrichedTraces net472 786μs 3.28μs 12.7μs 8.44 2.68 0.383 53.23 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 617μs 1.77μs 6.86μs 0.309 0 0 41.9 KB
#3599 WriteAndFlushEnrichedTraces net472 784μs 3.25μs 12.6μs 8.25 2.36 0.393 53.21 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 netcoreapp3.1 1.31μs 0.771ns 2.89ns 0.0124 0 0 904 B
master ExecuteNonQuery net472 1.69μs 2.06ns 7.73ns 0.144 0 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.21μs 0.84ns 3.25ns 0.0121 0 0 904 B
#3599 ExecuteNonQuery net472 1.71μs 1.99ns 7.43ns 0.143 0.000848 0 907 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 netcoreapp3.1 1.29μs 0.471ns 1.7ns 0.0142 0 0 1.06 KB
master CallElasticsearch net472 2.2μs 0.688ns 2.66ns 0.176 0.0011 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.37μs 0.51ns 1.91ns 0.0163 0 0 1.18 KB
master CallElasticsearchAsync net472 2.17μs 1.99ns 7.45ns 0.197 0.00109 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.34μs 0.416ns 1.56ns 0.014 0 0 1.06 KB
#3599 CallElasticsearch net472 2.31μs 0.452ns 1.75ns 0.175 0.00115 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.38μs 0.73ns 2.73ns 0.0157 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.24μs 0.603ns 2.17ns 0.197 0.00112 0 1.24 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 netcoreapp3.1 1.5μs 0.539ns 2.01ns 0.0173 0 0 1.28 KB
master ExecuteAsync net472 1.88μs 0.246ns 0.922ns 0.206 0.000941 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.45μs 1.3ns 5.04ns 0.0173 0 0 1.28 KB
#3599 ExecuteAsync net472 1.77μs 0.64ns 2.39ns 0.206 0.000886 0 1.3 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 netcoreapp3.1 4.2μs 1.56ns 5.61ns 0.0354 0 0 2.66 KB
master SendAsync net472 6.67μs 1.84ns 7.11ns 0.48 0 0 3.03 KB
#3599 SendAsync netcoreapp3.1 4.23μs 2.05ns 7.92ns 0.0361 0 0 2.66 KB
#3599 SendAsync net472 6.71μs 1.59ns 5.94ns 0.478 0 0 3.03 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 netcoreapp3.1 2μs 1.63ns 6.31ns 0.0255 0 0 1.83 KB
master EnrichedLog net472 2.5μs 0.972ns 3.76ns 0.284 0 0 1.79 KB
#3599 EnrichedLog netcoreapp3.1 1.88μs 0.712ns 2.76ns 0.0254 0 0 1.83 KB
#3599 EnrichedLog net472 2.51μs 1.41ns 5.26ns 0.284 0 0 1.79 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 netcoreapp3.1 119μs 107ns 415ns 0.0594 0 0 4.42 KB
master EnrichedLog net472 147μs 200ns 774ns 0.735 0.221 0 4.63 KB
#3599 EnrichedLog netcoreapp3.1 120μs 218ns 846ns 0 0 0 4.42 KB
#3599 EnrichedLog net472 149μs 71.9ns 269ns 0.671 0.224 0 4.63 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 netcoreapp3.1 4.01μs 3.23ns 12.5ns 0.0531 0 0 3.9 KB
master EnrichedLog net472 5.06μs 1.18ns 4.4ns 0.565 0.00253 0 3.56 KB
#3599 EnrichedLog netcoreapp3.1 3.91μs 2.07ns 7.74ns 0.0529 0 0 3.9 KB
#3599 EnrichedLog net472 5.09μs 1.09ns 4.24ns 0.564 0.00255 0 3.56 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 netcoreapp3.1 1.57μs 0.862ns 3.22ns 0.0173 0 0 1.3 KB
master SendReceive net472 1.98μs 0.591ns 2.21ns 0.213 0.000994 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.59μs 0.628ns 2.35ns 0.0175 0 0 1.3 KB
#3599 SendReceive net472 1.93μs 0.613ns 2.29ns 0.212 0.000964 0 1.34 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 netcoreapp3.1 3.62μs 1.18ns 4.58ns 0.0236 0 0 1.78 KB
master EnrichedLog net472 4.36μs 1.21ns 4.69ns 0.35 0 0 2.21 KB
#3599 EnrichedLog netcoreapp3.1 3.71μs 1.59ns 6.16ns 0.0241 0 0 1.78 KB
#3599 EnrichedLog net472 4.51μs 8.81ns 33ns 0.351 0 0 2.21 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 netcoreapp3.1 665ns 0.292ns 1.09ns 0.0097 0 0 720 B
master StartFinishSpan net472 893ns 0.253ns 0.947ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 860ns 0.345ns 1.29ns 0.0111 0 0 840 B
master StartFinishScope net472 1.12μs 0.641ns 2.48ns 0.134 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 661ns 0.265ns 0.992ns 0.00961 0 0 720 B
#3599 StartFinishSpan net472 973ns 0.637ns 2.47ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 902ns 0.65ns 2.43ns 0.0111 0 0 840 B
#3599 StartFinishScope net472 1.15μs 0.967ns 3.75ns 0.134 0 0 842 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 netcoreapp3.1 927ns 0.516ns 1.93ns 0.0111 0 0 840 B
master RunOnMethodBegin net472 1.27μs 0.726ns 2.81ns 0.133 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 927ns 0.274ns 1.03ns 0.0111 0 0 840 B
#3599 RunOnMethodBegin net472 1.18μs 0.451ns 1.69ns 0.134 0 0 842 B

andrewlock avatar Apr 18 '23 22:04 andrewlock

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,015ms)  : 2888, 3141
     .   : milestone, 3015,
    master - mean (3,015ms)  : 2891, 3139
     .   : milestone, 3015,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,683ms)  : 3629, 3737
     .   : milestone, 3683,
    master - mean (3,683ms)  : 3609, 3757
     .   : milestone, 3683,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,126ms)  : 3006, 3245
     .   : milestone, 3126,
    master - mean (3,122ms)  : 3008, 3235
     .   : milestone, 3122,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,541ms)  : 3443, 3639
     .   : milestone, 3541,
    master - mean (3,530ms)  : 3432, 3628
     .   : milestone, 3530,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,134ms)  : 3011, 3257
     .   : milestone, 3134,
    master - mean (3,100ms)  : 2964, 3236
     .   : milestone, 3100,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,513ms)  : 3428, 3597
     .   : milestone, 3513,
    master - mean (3,511ms)  : 3435, 3587
     .   : milestone, 3511,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (187ms)  : 185, 189
     .   : milestone, 187,
    master - mean (188ms)  : 184, 191
     .   : milestone, 188,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (941ms)  : 909, 974
     .   : milestone, 941,
    master - mean (940ms)  : 918, 963
     .   : milestone, 940,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (367ms)  : 361, 372
     .   : milestone, 367,
    master - mean (368ms)  : 363, 373
     .   : milestone, 368,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,088ms)  : 1059, 1117
     .   : milestone, 1088,
    master - mean (1,089ms)  : 1063, 1115
     .   : milestone, 1089,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (355ms)  : 349, 361
     .   : milestone, 355,
    master - mean (357ms)  : 353, 362
     .   : milestone, 357,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,028ms)  : 1007, 1049
     .   : milestone, 1028,
    master - mean (1,042ms)  : 1017, 1068
     .   : milestone, 1042,

andrewlock avatar Apr 19 '23 18:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 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 netcoreapp3.1 601μs 121ns 436ns 0 0 0 2.63 KB
master WriteAndFlushEnrichedTraces net472 794μs 328ns 1.23μs 0.396 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 590μs 300ns 1.16μs 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 803μs 235ns 909ns 0.401 0 0 3.22 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 netcoreapp3.1 38.9μs 28.4ns 106ns 0.0195 0 0 1.66 KB
master AllCycleSimpleBody net472 39μs 57.3ns 222ns 0.27 0 0 1.71 KB
master AllCycleMoreComplexBody netcoreapp3.1 207μs 205ns 767ns 0.103 0 0 9.15 KB
master AllCycleMoreComplexBody net472 214μs 96.7ns 374ns 1.38 0 0 9.31 KB
master ObjectExtractorSimpleBody netcoreapp3.1 168ns 0.0396ns 0.143ns 0.00373 0 0 272 B
master ObjectExtractorSimpleBody net472 147ns 0.279ns 1.08ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.14μs 1.09ns 3.92ns 0.0517 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.07μs 4.17ns 16.1ns 0.618 0.0061 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 38μs 88.2ns 330ns 0.0189 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 39.2μs 52.9ns 205ns 0.27 0 0 1.71 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 205μs 380ns 1.47μs 0.0998 0 0 9.14 KB
#3599 AllCycleMoreComplexBody net472 216μs 237ns 918ns 1.38 0 0 9.31 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 169ns 0.117ns 0.422ns 0.00376 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 144ns 0.19ns 0.738ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 4.07μs 5.8ns 22.4ns 0.0504 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.1μs 7.16ns 25.8ns 0.618 0.00602 0 3.89 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 netcoreapp3.1 181μs 187ns 723ns 0.181 0 0 20.36 KB
master SendRequest net472 0.00124ns 0.000312ns 0.00121ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 181μs 201ns 751ns 0.179 0 0 20.36 KB
#3599 SendRequest net472 0.000217ns 0.000113ns 0.000392ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 607μs 1.34μs 5.2μs 0.306 0 0 41.88 KB
master WriteAndFlushEnrichedTraces net472 772μs 1.98μs 7.66μs 8.25 2.36 0.393 53.24 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 614μs 1.86μs 7.22μs 0.311 0 0 42.02 KB
#3599 WriteAndFlushEnrichedTraces net472 788μs 3.43μs 13.3μs 8.33 2.65 0.379 53.23 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 netcoreapp3.1 1.29μs 4.14ns 15.5ns 0.0126 0 0 904 B
master ExecuteNonQuery net472 1.65μs 2.3ns 8.91ns 0.144 0 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.35μs 0.915ns 3.17ns 0.012 0 0 904 B
#3599 ExecuteNonQuery net472 1.76μs 2.54ns 9.82ns 0.144 0 0 907 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 netcoreapp3.1 1.3μs 0.603ns 2.25ns 0.0142 0 0 1.06 KB
master CallElasticsearch net472 2.14μs 1.52ns 5.91ns 0.176 0.00108 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.4μs 0.698ns 2.61ns 0.0162 0 0 1.18 KB
master CallElasticsearchAsync net472 2.36μs 4.62ns 17.9ns 0.198 0.00117 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.3μs 0.695ns 2.69ns 0.0142 0 0 1.06 KB
#3599 CallElasticsearch net472 2.35μs 1.18ns 4.58ns 0.175 0 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.37μs 0.585ns 2.19ns 0.0159 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.31μs 0.917ns 3.43ns 0.197 0.00116 0 1.24 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 netcoreapp3.1 1.39μs 0.298ns 1.07ns 0.0173 0 0 1.28 KB
master ExecuteAsync net472 1.8μs 0.629ns 2.44ns 0.206 0 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.42μs 1.33ns 4.97ns 0.0171 0 0 1.28 KB
#3599 ExecuteAsync net472 1.74μs 2.27ns 8.81ns 0.206 0.00087 0 1.3 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 netcoreapp3.1 4.21μs 2.92ns 11.3ns 0.0356 0 0 2.66 KB
master SendAsync net472 6.76μs 2.01ns 7.52ns 0.478 0 0 3.03 KB
#3599 SendAsync netcoreapp3.1 4.19μs 0.927ns 3.34ns 0.036 0 0 2.66 KB
#3599 SendAsync net472 6.7μs 1.66ns 6.42ns 0.479 0 0 3.03 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 netcoreapp3.1 2.1μs 5.14ns 19.2ns 0.0243 0 0 1.83 KB
master EnrichedLog net472 2.53μs 2.3ns 8.59ns 0.284 0 0 1.79 KB
#3599 EnrichedLog netcoreapp3.1 2.01μs 7.65ns 29.6ns 0.0245 0 0 1.83 KB
#3599 EnrichedLog net472 2.59μs 2.84ns 11ns 0.284 0 0 1.79 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 netcoreapp3.1 119μs 136ns 509ns 0.0594 0 0 4.42 KB
master EnrichedLog net472 148μs 91.7ns 355ns 0.667 0.222 0 4.63 KB
#3599 EnrichedLog netcoreapp3.1 121μs 171ns 664ns 0 0 0 4.42 KB
#3599 EnrichedLog net472 148μs 71.5ns 277ns 0.667 0.222 0 4.63 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 netcoreapp3.1 3.84μs 5.18ns 19.4ns 0.0541 0 0 3.9 KB
master EnrichedLog net472 5.05μs 1.29ns 4.84ns 0.566 0.00252 0 3.56 KB
#3599 EnrichedLog netcoreapp3.1 4μs 1.87ns 7ns 0.052 0 0 3.9 KB
#3599 EnrichedLog net472 5.03μs 2.72ns 10.5ns 0.566 0.00251 0 3.56 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 netcoreapp3.1 1.57μs 0.647ns 2.51ns 0.018 0 0 1.3 KB
master SendReceive net472 2.01μs 1.56ns 6.03ns 0.212 0.001 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.6μs 1.22ns 4.73ns 0.0176 0 0 1.3 KB
#3599 SendReceive net472 1.97μs 1.79ns 6.94ns 0.213 0.000985 0 1.34 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 netcoreapp3.1 3.63μs 1.14ns 4.41ns 0.0239 0 0 1.78 KB
master EnrichedLog net472 4.38μs 1.38ns 4.97ns 0.349 0 0 2.21 KB
#3599 EnrichedLog netcoreapp3.1 3.74μs 1.08ns 3.91ns 0.0242 0 0 1.78 KB
#3599 EnrichedLog net472 4.28μs 0.896ns 3.35ns 0.35 0 0 2.21 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 netcoreapp3.1 683ns 0.45ns 1.68ns 0.00991 0 0 720 B
master StartFinishSpan net472 940ns 0.476ns 1.84ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 862ns 0.86ns 3.33ns 0.0113 0 0 840 B
master StartFinishScope net472 1.15μs 0.439ns 1.7ns 0.134 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 738ns 0.193ns 0.749ns 0.00964 0 0 720 B
#3599 StartFinishSpan net472 925ns 0.475ns 1.84ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 813ns 0.325ns 1.22ns 0.0115 0 0 840 B
#3599 StartFinishScope net472 1.1μs 0.757ns 2.93ns 0.133 0 0 842 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 netcoreapp3.1 938ns 0.482ns 1.87ns 0.0113 0 0 840 B
master RunOnMethodBegin net472 1.19μs 0.91ns 3.53ns 0.134 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 852ns 0.419ns 1.62ns 0.0115 0 0 840 B
#3599 RunOnMethodBegin net472 1.1μs 0.573ns 2.14ns 0.133 0 0 842 B

andrewlock avatar Apr 19 '23 18:04 andrewlock

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,023ms)  : 2906, 3141
     .   : milestone, 3023,
    master - mean (3,015ms)  : 2891, 3139
     .   : milestone, 3015,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,680ms)  : 3596, 3764
     .   : milestone, 3680,
    master - mean (3,683ms)  : 3609, 3757
     .   : milestone, 3683,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,155ms)  : 3041, 3270
     .   : milestone, 3155,
    master - mean (3,122ms)  : 3008, 3235
     .   : milestone, 3122,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,552ms)  : 3470, 3633
     .   : milestone, 3552,
    master - mean (3,530ms)  : 3432, 3628
     .   : milestone, 3530,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,124ms)  : 2992, 3257
     .   : milestone, 3124,
    master - mean (3,100ms)  : 2964, 3236
     .   : milestone, 3100,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,515ms)  : 3439, 3591
     .   : milestone, 3515,
    master - mean (3,511ms)  : 3435, 3587
     .   : milestone, 3511,

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

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (936ms)  : 903, 969
     .   : milestone, 936,
    master - mean (940ms)  : 918, 963
     .   : milestone, 940,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (369ms)  : 361, 376
     .   : milestone, 369,
    master - mean (368ms)  : 363, 373
     .   : milestone, 368,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,115ms)  : 1038, 1191
     .   : milestone, 1115,
    master - mean (1,089ms)  : 1063, 1115
     .   : milestone, 1089,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (359ms)  : 344, 374
     .   : milestone, 359,
    master - mean (357ms)  : 353, 362
     .   : milestone, 357,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,035ms)  : 1006, 1063
     .   : milestone, 1035,
    master - mean (1,042ms)  : 1017, 1068
     .   : milestone, 1042,

andrewlock avatar Apr 19 '23 23:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 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 netcoreapp3.1 601μs 121ns 436ns 0 0 0 2.63 KB
master WriteAndFlushEnrichedTraces net472 794μs 328ns 1.23μs 0.396 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 594μs 220ns 852ns 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 802μs 504ns 1.95μs 0.401 0 0 3.22 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 netcoreapp3.1 38.9μs 28.4ns 106ns 0.0195 0 0 1.66 KB
master AllCycleSimpleBody net472 39μs 57.3ns 222ns 0.27 0 0 1.71 KB
master AllCycleMoreComplexBody netcoreapp3.1 207μs 205ns 767ns 0.103 0 0 9.15 KB
master AllCycleMoreComplexBody net472 214μs 96.7ns 374ns 1.38 0 0 9.31 KB
master ObjectExtractorSimpleBody netcoreapp3.1 168ns 0.0396ns 0.143ns 0.00373 0 0 272 B
master ObjectExtractorSimpleBody net472 147ns 0.279ns 1.08ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.14μs 1.09ns 3.92ns 0.0517 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.07μs 4.17ns 16.1ns 0.618 0.0061 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 37.1μs 84.1ns 394ns 0.0208 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 39.2μs 107ns 413ns 0.252 0 0 1.71 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 205μs 400ns 1.44μs 0.103 0 0 9.14 KB
#3599 AllCycleMoreComplexBody net472 212μs 365ns 1.26μs 1.47 0 0 9.31 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 173ns 0.14ns 0.543ns 0.00371 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 144ns 0.151ns 0.546ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 4.11μs 13.7ns 51.3ns 0.0521 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.09μs 8.33ns 31.2ns 0.618 0.00618 0 3.89 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 netcoreapp3.1 181μs 187ns 723ns 0.181 0 0 20.36 KB
master SendRequest net472 0.00124ns 0.000312ns 0.00121ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 185μs 192ns 692ns 0.183 0 0 20.36 KB
#3599 SendRequest net472 0.000725ns 0.000304ns 0.00118ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 607μs 1.34μs 5.2μs 0.306 0 0 41.88 KB
master WriteAndFlushEnrichedTraces net472 772μs 1.98μs 7.66μs 8.25 2.36 0.393 53.24 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 620μs 1.18μs 4.56μs 0.311 0 0 41.7 KB
#3599 WriteAndFlushEnrichedTraces net472 803μs 3.46μs 13.4μs 8.22 2.47 0.411 53.24 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 netcoreapp3.1 1.29μs 4.14ns 15.5ns 0.0126 0 0 904 B
master ExecuteNonQuery net472 1.65μs 2.3ns 8.91ns 0.144 0 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.28μs 0.504ns 1.95ns 0.0123 0 0 904 B
#3599 ExecuteNonQuery net472 1.76μs 1.78ns 6.89ns 0.144 0.000871 0 907 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 netcoreapp3.1 1.3μs 0.603ns 2.25ns 0.0142 0 0 1.06 KB
master CallElasticsearch net472 2.14μs 1.52ns 5.91ns 0.176 0.00108 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.4μs 0.698ns 2.61ns 0.0162 0 0 1.18 KB
master CallElasticsearchAsync net472 2.36μs 4.62ns 17.9ns 0.198 0.00117 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.28μs 0.436ns 1.57ns 0.0141 0 0 1.06 KB
#3599 CallElasticsearch net472 2.18μs 1.13ns 4.22ns 0.176 0.00109 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.43μs 0.978ns 3.66ns 0.0163 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.44μs 1ns 3.89ns 0.196 0.00121 0 1.24 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 netcoreapp3.1 1.39μs 0.298ns 1.07ns 0.0173 0 0 1.28 KB
master ExecuteAsync net472 1.8μs 0.629ns 2.44ns 0.206 0 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.47μs 0.58ns 2.09ns 0.0176 0 0 1.28 KB
#3599 ExecuteAsync net472 1.79μs 0.489ns 1.83ns 0.206 0.000901 0 1.3 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 netcoreapp3.1 4.21μs 2.92ns 11.3ns 0.0356 0 0 2.66 KB
master SendAsync net472 6.76μs 2.01ns 7.52ns 0.478 0 0 3.03 KB
#3599 SendAsync netcoreapp3.1 4.25μs 1.47ns 5.71ns 0.0339 0 0 2.66 KB
#3599 SendAsync net472 6.72μs 1.06ns 3.97ns 0.48 0 0 3.03 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 netcoreapp3.1 2.1μs 5.14ns 19.2ns 0.0243 0 0 1.83 KB
master EnrichedLog net472 2.53μs 2.3ns 8.59ns 0.284 0 0 1.79 KB
#3599 EnrichedLog netcoreapp3.1 2.03μs 0.667ns 2.49ns 0.0245 0 0 1.83 KB
#3599 EnrichedLog net472 2.53μs 1.34ns 5.02ns 0.283 0 0 1.79 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 netcoreapp3.1 119μs 136ns 509ns 0.0594 0 0 4.42 KB
master EnrichedLog net472 148μs 91.7ns 355ns 0.667 0.222 0 4.63 KB
#3599 EnrichedLog netcoreapp3.1 120μs 111ns 415ns 0 0 0 4.42 KB
#3599 EnrichedLog net472 149μs 76.7ns 297ns 0.668 0.223 0 4.63 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 netcoreapp3.1 3.84μs 5.18ns 19.4ns 0.0541 0 0 3.9 KB
master EnrichedLog net472 5.05μs 1.29ns 4.84ns 0.566 0.00252 0 3.56 KB
#3599 EnrichedLog netcoreapp3.1 4.16μs 14.3ns 55.2ns 0.0535 0 0 3.9 KB
#3599 EnrichedLog net472 5.1μs 1.48ns 5.74ns 0.565 0.00257 0 3.56 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 netcoreapp3.1 1.57μs 0.647ns 2.51ns 0.018 0 0 1.3 KB
master SendReceive net472 2.01μs 1.56ns 6.03ns 0.212 0.001 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.57μs 0.524ns 1.96ns 0.0172 0 0 1.3 KB
#3599 SendReceive net472 1.98μs 1.17ns 4.21ns 0.212 0 0 1.34 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 netcoreapp3.1 3.63μs 1.14ns 4.41ns 0.0239 0 0 1.78 KB
master EnrichedLog net472 4.38μs 1.38ns 4.97ns 0.349 0 0 2.21 KB
#3599 EnrichedLog netcoreapp3.1 3.59μs 1.33ns 4.98ns 0.0233 0 0 1.78 KB
#3599 EnrichedLog net472 4.35μs 2.3ns 8.9ns 0.35 0 0 2.21 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 netcoreapp3.1 683ns 0.45ns 1.68ns 0.00991 0 0 720 B
master StartFinishSpan net472 940ns 0.476ns 1.84ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 862ns 0.86ns 3.33ns 0.0113 0 0 840 B
master StartFinishScope net472 1.15μs 0.439ns 1.7ns 0.134 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 726ns 0.418ns 1.56ns 0.00983 0 0 720 B
#3599 StartFinishSpan net472 910ns 0.659ns 2.38ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 795ns 0.515ns 1.93ns 0.0116 0 0 840 B
#3599 StartFinishScope net472 1.16μs 0.512ns 1.98ns 0.133 0 0 842 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 netcoreapp3.1 938ns 0.482ns 1.87ns 0.0113 0 0 840 B
master RunOnMethodBegin net472 1.19μs 0.91ns 3.53ns 0.134 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 904ns 0.28ns 1.08ns 0.0113 0 0 840 B
#3599 RunOnMethodBegin net472 1.21μs 0.335ns 1.3ns 0.134 0 0 842 B

andrewlock avatar Apr 19 '23 23:04 andrewlock

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,006ms)  : 2890, 3122
     .   : milestone, 3006,
    master - mean (3,015ms)  : 2923, 3108
     .   : milestone, 3015,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,674ms)  : 3594, 3754
     .   : milestone, 3674,
    master - mean (3,686ms)  : 3585, 3787
     .   : milestone, 3686,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,113ms)  : 2987, 3238
     .   : milestone, 3113,
    master - mean (3,140ms)  : 2996, 3284
     .   : milestone, 3140,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,545ms)  : 3428, 3661
     .   : milestone, 3545,
    master - mean (3,549ms)  : 3448, 3649
     .   : milestone, 3549,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,076ms)  : 2971, 3180
     .   : milestone, 3076,
    master - mean (3,101ms)  : 2983, 3220
     .   : milestone, 3101,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,514ms)  : 3425, 3602
     .   : milestone, 3514,
    master - mean (3,526ms)  : 3452, 3600
     .   : milestone, 3526,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (188ms)  : 185, 190
     .   : milestone, 188,
    master - mean (188ms)  : 183, 193
     .   : milestone, 188,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (941ms)  : 905, 978
     .   : milestone, 941,
    master - mean (941ms)  : 907, 974
     .   : milestone, 941,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (367ms)  : 362, 371
     .   : milestone, 367,
    master - mean (367ms)  : 361, 374
     .   : milestone, 367,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,084ms)  : 1060, 1108
     .   : milestone, 1084,
    master - mean (1,087ms)  : 1068, 1107
     .   : milestone, 1087,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (355ms)  : 350, 361
     .   : milestone, 355,
    master - mean (354ms)  : 347, 362
     .   : milestone, 354,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,036ms)  : 1006, 1065
     .   : milestone, 1036,
    master - mean (1,032ms)  : 1007, 1057
     .   : milestone, 1032,

andrewlock avatar Apr 20 '23 13:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.124
  • 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 netcoreapp3.1 586μs 154ns 576ns 0 0 0 2.63 KB
master WriteAndFlushEnrichedTraces net472 810μs 299ns 1.12μs 0.403 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 592μs 170ns 613ns 0 0 0 2.62 KB
#3599 WriteAndFlushEnrichedTraces net472 808μs 422ns 1.58μs 0.403 0 0 3.22 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 netcoreapp3.1 38μs 96.3ns 373ns 0.0191 0 0 1.66 KB
master AllCycleSimpleBody net472 38.7μs 50.8ns 197ns 0.253 0 0 1.71 KB
master AllCycleMoreComplexBody netcoreapp3.1 206μs 323ns 1.17μs 0.103 0 0 9.14 KB
master AllCycleMoreComplexBody net472 214μs 301ns 1.13μs 1.39 0 0 9.31 KB
master ObjectExtractorSimpleBody netcoreapp3.1 169ns 0.825ns 3.4ns 0.00364 0 0 272 B
master ObjectExtractorSimpleBody net472 146ns 0.326ns 1.26ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.08μs 2.78ns 10.4ns 0.0508 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.16μs 4.46ns 16.7ns 0.617 0.00617 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 38.1μs 95.3ns 369ns 0.0188 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 39.8μs 32.2ns 125ns 0.269 0 0 1.71 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 203μs 358ns 1.29μs 0.102 0 0 9.14 KB
#3599 AllCycleMoreComplexBody net472 215μs 138ns 533ns 1.4 0 0 9.31 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 165ns 0.269ns 1.04ns 0.00372 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 145ns 0.184ns 0.688ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 4.06μs 4.01ns 15.5ns 0.0512 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.09μs 4.33ns 16.8ns 0.618 0.00608 0 3.89 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 netcoreapp3.1 184μs 278ns 1.08μs 0.184 0 0 20.36 KB
master SendRequest net472 0.000365ns 0.000165ns 0.000639ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 184μs 312ns 1.21μs 0.183 0 0 20.37 KB
#3599 SendRequest net472 0.000131ns 5.63E‑05ns 0.000195ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 613μs 1.23μs 4.78μs 0.314 0 0 41.77 KB
master WriteAndFlushEnrichedTraces net472 769μs 2.42μs 9.05μs 8.15 2.33 0.388 53.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 610μs 935ns 3.62μs 0.314 0 0 41.89 KB
#3599 WriteAndFlushEnrichedTraces net472 767μs 3.77μs 16.4μs 8.2 2.34 0.391 53.2 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 netcoreapp3.1 1.37μs 0.807ns 3.12ns 0.0124 0 0 904 B
master ExecuteNonQuery net472 1.62μs 2.45ns 9.48ns 0.143 0 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.33μs 1.89ns 7.09ns 0.012 0 0 904 B
#3599 ExecuteNonQuery net472 1.74μs 2.9ns 11.2ns 0.144 0 0 907 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 netcoreapp3.1 1.36μs 1.04ns 3.88ns 0.0144 0 0 1.06 KB
master CallElasticsearch net472 2.19μs 0.344ns 1.33ns 0.175 0.0011 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.31μs 0.531ns 1.99ns 0.0158 0 0 1.18 KB
master CallElasticsearchAsync net472 2.25μs 0.66ns 2.47ns 0.197 0 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.27μs 0.418ns 1.51ns 0.0141 0 0 1.06 KB
#3599 CallElasticsearch net472 2.11μs 0.892ns 3.46ns 0.175 0.00105 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.32μs 0.496ns 1.79ns 0.0159 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.38μs 0.944ns 3.66ns 0.197 0.00118 0 1.24 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 netcoreapp3.1 1.43μs 0.252ns 0.909ns 0.0172 0 0 1.28 KB
master ExecuteAsync net472 1.76μs 0.42ns 1.63ns 0.206 0.00088 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.42μs 0.254ns 0.984ns 0.0172 0 0 1.28 KB
#3599 ExecuteAsync net472 1.9μs 0.534ns 2.07ns 0.206 0.000955 0 1.3 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 netcoreapp3.1 4.31μs 1.21ns 4.51ns 0.0345 0 0 2.66 KB
master SendAsync net472 6.71μs 1.48ns 5.54ns 0.481 0 0 3.03 KB
#3599 SendAsync netcoreapp3.1 4.38μs 8.06ns 31.2ns 0.0352 0 0 2.66 KB
#3599 SendAsync net472 6.78μs 1.36ns 4.89ns 0.479 0 0 3.03 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 netcoreapp3.1 2.07μs 0.875ns 3.28ns 0.0243 0 0 1.83 KB
master EnrichedLog net472 2.53μs 2.08ns 7.78ns 0.284 0 0 1.79 KB
#3599 EnrichedLog netcoreapp3.1 1.99μs 1.21ns 4.68ns 0.0251 0 0 1.83 KB
#3599 EnrichedLog net472 2.61μs 1.68ns 6.49ns 0.284 0 0 1.79 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 netcoreapp3.1 120μs 101ns 393ns 0.0596 0 0 4.42 KB
master EnrichedLog net472 149μs 75.6ns 293ns 0.669 0.223 0 4.63 KB
#3599 EnrichedLog netcoreapp3.1 118μs 152ns 549ns 0 0 0 4.42 KB
#3599 EnrichedLog net472 149μs 103ns 399ns 0.666 0.222 0 4.63 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 netcoreapp3.1 3.94μs 0.9ns 3.37ns 0.0532 0 0 3.9 KB
master EnrichedLog net472 5.11μs 1.3ns 5.05ns 0.566 0.00257 0 3.56 KB
#3599 EnrichedLog netcoreapp3.1 3.92μs 2.3ns 8.3ns 0.0529 0 0 3.9 KB
#3599 EnrichedLog net472 5.04μs 0.621ns 2.15ns 0.565 0.00252 0 3.56 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 netcoreapp3.1 1.53μs 2.65ns 9.92ns 0.0174 0 0 1.3 KB
master SendReceive net472 1.97μs 1.4ns 5.06ns 0.213 0.000985 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.54μs 3.04ns 11.8ns 0.0176 0 0 1.3 KB
#3599 SendReceive net472 1.9μs 1.27ns 4.75ns 0.213 0.000941 0 1.34 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 netcoreapp3.1 3.7μs 2.17ns 8.41ns 0.024 0 0 1.78 KB
master EnrichedLog net472 4.32μs 0.87ns 3.01ns 0.35 0 0 2.21 KB
#3599 EnrichedLog netcoreapp3.1 3.78μs 2.21ns 7.95ns 0.0228 0 0 1.78 KB
#3599 EnrichedLog net472 4.2μs 1.45ns 5.43ns 0.349 0 0 2.21 KB
Benchmarks.Trace.SpanBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3599

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 1.124 1,217.73 1,083.44

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan netcoreapp3.1 673ns 0.639ns 2.39ns 0.00957 0 0 720 B
master StartFinishSpan net472 866ns 1.79ns 6.91ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 879ns 0.963ns 3.73ns 0.0114 0 0 840 B
master StartFinishScope net472 1.21μs 1.99ns 7.7ns 0.134 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 662ns 1.58ns 6.1ns 0.00929 0 0 720 B
#3599 StartFinishSpan net472 896ns 0.443ns 1.72ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 791ns 0.812ns 3.15ns 0.0113 0 0 840 B
#3599 StartFinishScope net472 1.08μs 1.83ns 7.07ns 0.134 0 0 842 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 netcoreapp3.1 858ns 0.697ns 2.7ns 0.0112 0 0 840 B
master RunOnMethodBegin net472 1.2μs 2.57ns 9.96ns 0.134 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 920ns 1.06ns 3.95ns 0.0115 0 0 840 B
#3599 RunOnMethodBegin net472 1.21μs 2.04ns 7.9ns 0.133 0 0 842 B

andrewlock avatar Apr 20 '23 13:04 andrewlock

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,023ms)  : 2909, 3137
     .   : milestone, 3023,
    master - mean (3,015ms)  : 2923, 3108
     .   : milestone, 3015,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,669ms)  : 3579, 3758
     .   : milestone, 3669,
    master - mean (3,686ms)  : 3585, 3787
     .   : milestone, 3686,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,093ms)  : 2943, 3243
     .   : milestone, 3093,
    master - mean (3,140ms)  : 2996, 3284
     .   : milestone, 3140,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,541ms)  : 3463, 3618
     .   : milestone, 3541,
    master - mean (3,549ms)  : 3448, 3649
     .   : milestone, 3549,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,102ms)  : 2961, 3243
     .   : milestone, 3102,
    master - mean (3,101ms)  : 2983, 3220
     .   : milestone, 3101,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,516ms)  : 3438, 3594
     .   : milestone, 3516,
    master - mean (3,526ms)  : 3452, 3600
     .   : milestone, 3526,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (189ms)  : 184, 194
     .   : milestone, 189,
    master - mean (188ms)  : 183, 193
     .   : milestone, 188,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (943ms)  : 909, 977
     .   : milestone, 943,
    master - mean (941ms)  : 907, 974
     .   : milestone, 941,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (368ms)  : 363, 373
     .   : milestone, 368,
    master - mean (367ms)  : 361, 374
     .   : milestone, 367,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,088ms)  : 1063, 1114
     .   : milestone, 1088,
    master - mean (1,087ms)  : 1068, 1107
     .   : milestone, 1087,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (355ms)  : 348, 362
     .   : milestone, 355,
    master - mean (354ms)  : 347, 362
     .   : milestone, 354,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,033ms)  : 1004, 1062
     .   : milestone, 1033,
    master - mean (1,032ms)  : 1007, 1057
     .   : milestone, 1032,

andrewlock avatar Apr 20 '23 21:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 compared to master:

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

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.AgentWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 586μs 154ns 576ns 0 0 0 2.63 KB
master WriteAndFlushEnrichedTraces net472 810μs 299ns 1.12μs 0.403 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 619μs 181ns 677ns 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 815μs 463ns 1.79μs 0.406 0 0 3.22 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 netcoreapp3.1 38μs 96.3ns 373ns 0.0191 0 0 1.66 KB
master AllCycleSimpleBody net472 38.7μs 50.8ns 197ns 0.253 0 0 1.71 KB
master AllCycleMoreComplexBody netcoreapp3.1 206μs 323ns 1.17μs 0.103 0 0 9.14 KB
master AllCycleMoreComplexBody net472 214μs 301ns 1.13μs 1.39 0 0 9.31 KB
master ObjectExtractorSimpleBody netcoreapp3.1 169ns 0.825ns 3.4ns 0.00364 0 0 272 B
master ObjectExtractorSimpleBody net472 146ns 0.326ns 1.26ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.08μs 2.78ns 10.4ns 0.0508 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.16μs 4.46ns 16.7ns 0.617 0.00617 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 37.9μs 62.9ns 235ns 0.0187 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 38.3μs 126ns 490ns 0.268 0 0 1.72 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 205μs 204ns 1.24μs 0.102 0 0 9.15 KB
#3599 AllCycleMoreComplexBody net472 217μs 176ns 633ns 1.41 0 0 9.32 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 167ns 0.19ns 0.736ns 0.00373 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 150ns 0.238ns 0.89ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 3.9μs 2.83ns 10.9ns 0.0507 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.16μs 7.11ns 27.5ns 0.617 0.00617 0 3.89 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 netcoreapp3.1 184μs 278ns 1.08μs 0.184 0 0 20.36 KB
master SendRequest net472 0.000365ns 0.000165ns 0.000639ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 184μs 259ns 1μs 0.184 0 0 20.38 KB
#3599 SendRequest net472 0.000386ns 0.000207ns 0.000773ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3599

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.77 KB 42.06 KB 295 B 0.71%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 613μs 1.23μs 4.78μs 0.314 0 0 41.77 KB
master WriteAndFlushEnrichedTraces net472 769μs 2.42μs 9.05μs 8.15 2.33 0.388 53.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 617μs 1.89μs 7.34μs 0.302 0 0 42.06 KB
#3599 WriteAndFlushEnrichedTraces net472 789μs 2.44μs 9.44μs 8.15 2.33 0.388 53.24 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 netcoreapp3.1 1.37μs 0.807ns 3.12ns 0.0124 0 0 904 B
master ExecuteNonQuery net472 1.62μs 2.45ns 9.48ns 0.143 0 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.27μs 0.979ns 3.79ns 0.0125 0 0 904 B
#3599 ExecuteNonQuery net472 1.67μs 2.62ns 10.1ns 0.144 0 0 907 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 netcoreapp3.1 1.36μs 1.04ns 3.88ns 0.0144 0 0 1.06 KB
master CallElasticsearch net472 2.19μs 0.344ns 1.33ns 0.175 0.0011 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.31μs 0.531ns 1.99ns 0.0158 0 0 1.18 KB
master CallElasticsearchAsync net472 2.25μs 0.66ns 2.47ns 0.197 0 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.38μs 0.595ns 2.23ns 0.0146 0 0 1.06 KB
#3599 CallElasticsearch net472 2.28μs 0.449ns 1.68ns 0.176 0 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.4μs 0.825ns 3.09ns 0.0161 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.35μs 0.695ns 2.6ns 0.198 0.00118 0 1.24 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 netcoreapp3.1 1.43μs 0.252ns 0.909ns 0.0172 0 0 1.28 KB
master ExecuteAsync net472 1.76μs 0.42ns 1.63ns 0.206 0.00088 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.46μs 0.881ns 3.3ns 0.0176 0 0 1.28 KB
#3599 ExecuteAsync net472 1.94μs 0.552ns 2.06ns 0.206 0.000971 0 1.3 KB
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3599

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.HttpClientBenchmark.SendAsync‑net472 3.03 KB 3.27 KB 241 B 7.97%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync netcoreapp3.1 4.31μs 1.21ns 4.51ns 0.0345 0 0 2.66 KB
master SendAsync net472 6.71μs 1.48ns 5.54ns 0.481 0 0 3.03 KB
#3599 SendAsync netcoreapp3.1 4.34μs 1.54ns 5.76ns 0.0347 0 0 2.66 KB
#3599 SendAsync net472 7.08μs 1.93ns 7.46ns 0.517 0 0 3.27 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3599

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑net472 1.79 KB 2.05 KB 257 B 14.37%
Benchmarks.Trace.ILoggerBenchmark.EnrichedLog‑netcoreapp3.1 1.83 KB 1.93 KB 96 B 5.25%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog netcoreapp3.1 2.07μs 0.875ns 3.28ns 0.0243 0 0 1.83 KB
master EnrichedLog net472 2.53μs 2.08ns 7.78ns 0.284 0 0 1.79 KB
#3599 EnrichedLog netcoreapp3.1 2.11μs 0.769ns 2.98ns 0.0264 0 0 1.93 KB
#3599 EnrichedLog net472 2.69μs 3ns 11.6ns 0.324 0 0 2.05 KB
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3599

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑net472 4.63 KB 4.89 KB 257 B 5.55%
Benchmarks.Trace.Log4netBenchmark.EnrichedLog‑netcoreapp3.1 4.42 KB 4.51 KB 96 B 2.17%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog netcoreapp3.1 120μs 101ns 393ns 0.0596 0 0 4.42 KB
master EnrichedLog net472 149μs 75.6ns 293ns 0.669 0.223 0 4.63 KB
#3599 EnrichedLog netcoreapp3.1 120μs 134ns 518ns 0 0 0 4.51 KB
#3599 EnrichedLog net472 149μs 110ns 425ns 0.742 0.223 0 4.89 KB
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3599

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑net472 3.56 KB 3.82 KB 257 B 7.22%
Benchmarks.Trace.NLogBenchmark.EnrichedLog‑netcoreapp3.1 3.9 KB 3.99 KB 96 B 2.46%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog netcoreapp3.1 3.94μs 0.9ns 3.37ns 0.0532 0 0 3.9 KB
master EnrichedLog net472 5.11μs 1.3ns 5.05ns 0.566 0.00257 0 3.56 KB
#3599 EnrichedLog netcoreapp3.1 3.94μs 1.42ns 5.12ns 0.0552 0 0 3.99 KB
#3599 EnrichedLog net472 5.44μs 0.937ns 3.5ns 0.607 0.00272 0 3.82 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 netcoreapp3.1 1.53μs 2.65ns 9.92ns 0.0174 0 0 1.3 KB
master SendReceive net472 1.97μs 1.4ns 5.06ns 0.213 0.000985 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.57μs 0.457ns 1.71ns 0.0172 0 0 1.3 KB
#3599 SendReceive net472 1.95μs 1.73ns 6.69ns 0.213 0.000971 0 1.34 KB
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3599

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑net472 2.21 KB 2.46 KB 257 B 11.65%
Benchmarks.Trace.SerilogBenchmark.EnrichedLog‑netcoreapp3.1 1.78 KB 1.88 KB 96 B 5.38%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog netcoreapp3.1 3.7μs 2.17ns 8.41ns 0.024 0 0 1.78 KB
master EnrichedLog net472 4.32μs 0.87ns 3.01ns 0.35 0 0 2.21 KB
#3599 EnrichedLog netcoreapp3.1 3.96μs 1.58ns 6.14ns 0.0255 0 0 1.88 KB
#3599 EnrichedLog net472 4.75μs 2.07ns 7.73ns 0.39 0 0 2.46 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 netcoreapp3.1 673ns 0.639ns 2.39ns 0.00957 0 0 720 B
master StartFinishSpan net472 866ns 1.79ns 6.91ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 879ns 0.963ns 3.73ns 0.0114 0 0 840 B
master StartFinishScope net472 1.21μs 1.99ns 7.7ns 0.134 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 692ns 0.769ns 2.88ns 0.00972 0 0 720 B
#3599 StartFinishSpan net472 903ns 1.12ns 4.03ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 937ns 1.76ns 6.82ns 0.0111 0 0 840 B
#3599 StartFinishScope net472 1.1μs 1.75ns 6.56ns 0.133 0 0 842 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 netcoreapp3.1 858ns 0.697ns 2.7ns 0.0112 0 0 840 B
master RunOnMethodBegin net472 1.2μs 2.57ns 9.96ns 0.134 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 903ns 0.592ns 2.29ns 0.0112 0 0 840 B
#3599 RunOnMethodBegin net472 1.22μs 1.63ns 6.32ns 0.134 0 0 842 B

andrewlock avatar Apr 20 '23 21:04 andrewlock

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,013ms)  : 2881, 3145
     .   : milestone, 3013,
    master - mean (3,014ms)  : 2903, 3125
     .   : milestone, 3014,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,673ms)  : 3600, 3746
     .   : milestone, 3673,
    master - mean (3,685ms)  : 3592, 3778
     .   : milestone, 3685,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,105ms)  : 2960, 3249
     .   : milestone, 3105,
    master - mean (3,129ms)  : 2994, 3263
     .   : milestone, 3129,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,552ms)  : 3467, 3637
     .   : milestone, 3552,
    master - mean (3,525ms)  : 3416, 3635
     .   : milestone, 3525,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,076ms)  : 2947, 3204
     .   : milestone, 3076,
    master - mean (3,097ms)  : 2965, 3228
     .   : milestone, 3097,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,525ms)  : 3458, 3591
     .   : milestone, 3525,
    master - mean (3,507ms)  : 3425, 3590
     .   : milestone, 3507,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (187ms)  : 183, 192
     .   : milestone, 187,
    master - mean (188ms)  : 183, 192
     .   : milestone, 188,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (940ms)  : 907, 973
     .   : milestone, 940,
    master - mean (948ms)  : 922, 975
     .   : milestone, 948,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (367ms)  : 362, 372
     .   : milestone, 367,
    master - mean (368ms)  : 361, 375
     .   : milestone, 368,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,086ms)  : 1062, 1111
     .   : milestone, 1086,
    master - mean (1,088ms)  : 1059, 1118
     .   : milestone, 1088,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (355ms)  : 346, 363
     .   : milestone, 355,
    master - mean (356ms)  : 351, 361
     .   : milestone, 356,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,042ms)  : 1008, 1076
     .   : milestone, 1042,
    master - mean (1,040ms)  : 1015, 1065
     .   : milestone, 1040,

andrewlock avatar Apr 21 '23 18:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 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 netcoreapp3.1 626μs 304ns 1.18μs 0 0 0 2.62 KB
master WriteAndFlushEnrichedTraces net472 855μs 379ns 1.37μs 0.425 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 613μs 423ns 1.58μs 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 834μs 395ns 1.48μs 0.425 0 0 3.22 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 netcoreapp3.1 38.3μs 43.5ns 163ns 0.0191 0 0 1.66 KB
master AllCycleSimpleBody net472 39.4μs 50.7ns 196ns 0.269 0 0 1.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 206μs 115ns 429ns 0.103 0 0 9.15 KB
master AllCycleMoreComplexBody net472 217μs 160ns 599ns 1.41 0 0 9.32 KB
master ObjectExtractorSimpleBody netcoreapp3.1 165ns 0.0529ns 0.198ns 0.00375 0 0 272 B
master ObjectExtractorSimpleBody net472 146ns 0.154ns 0.597ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.19μs 4.11ns 15.9ns 0.0506 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.21μs 4.38ns 17ns 0.618 0.00637 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 38.1μs 69.1ns 267ns 0.019 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 39μs 13.3ns 49.8ns 0.272 0 0 1.72 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 205μs 198ns 739ns 0.103 0 0 9.15 KB
#3599 AllCycleMoreComplexBody net472 214μs 62ns 240ns 1.39 0 0 9.32 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 166ns 0.139ns 0.54ns 0.00381 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 151ns 0.165ns 0.617ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 4.19μs 1.53ns 5.52ns 0.0503 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.14μs 11.1ns 41.5ns 0.617 0.00617 0 3.89 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 netcoreapp3.1 182μs 293ns 1.13μs 0.183 0 0 20.39 KB
master SendRequest net472 0.00032ns 0.000175ns 0.000677ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 184μs 266ns 1.03μs 0.183 0 0 20.38 KB
#3599 SendRequest net472 0.00106ns 0.000335ns 0.00126ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 618μs 2.32μs 9μs 0.311 0 0 42.11 KB
master WriteAndFlushEnrichedTraces net472 772μs 1.71μs 6.16μs 8.44 2.68 0.383 53.24 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 601μs 1.28μs 4.95μs 0.3 0 0 41.92 KB
#3599 WriteAndFlushEnrichedTraces net472 775μs 2.73μs 10.6μs 8.44 2.68 0.383 53.25 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 netcoreapp3.1 1.29μs 0.613ns 2.38ns 0.0123 0 0 904 B
master ExecuteNonQuery net472 1.7μs 2.2ns 8.23ns 0.144 0.000849 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.26μs 0.677ns 2.53ns 0.0119 0 0 904 B
#3599 ExecuteNonQuery net472 1.71μs 2.37ns 9.19ns 0.144 0 0 907 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 netcoreapp3.1 1.33μs 0.378ns 1.36ns 0.0146 0 0 1.06 KB
master CallElasticsearch net472 2.12μs 0.776ns 3.01ns 0.175 0.00106 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.35μs 0.426ns 1.48ns 0.0162 0 0 1.18 KB
master CallElasticsearchAsync net472 2.39μs 0.87ns 3.37ns 0.198 0.00118 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.35μs 0.421ns 1.63ns 0.0141 0 0 1.06 KB
#3599 CallElasticsearch net472 2.19μs 0.45ns 1.69ns 0.175 0 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.44μs 0.85ns 3.18ns 0.0159 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.37μs 1.29ns 5.01ns 0.197 0.00118 0 1.24 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 netcoreapp3.1 1.41μs 0.628ns 2.35ns 0.0169 0 0 1.28 KB
master ExecuteAsync net472 1.83μs 0.392ns 1.52ns 0.206 0.000916 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.45μs 0.406ns 1.47ns 0.0176 0 0 1.28 KB
#3599 ExecuteAsync net472 1.95μs 0.534ns 2ns 0.207 0.000979 0 1.3 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 netcoreapp3.1 4.24μs 1.08ns 4.03ns 0.036 0 0 2.66 KB
master SendAsync net472 7.02μs 1.54ns 5.57ns 0.519 0.00351 0 3.27 KB
#3599 SendAsync netcoreapp3.1 4.44μs 10.2ns 38.2ns 0.035 0 0 2.66 KB
#3599 SendAsync net472 7.05μs 2.3ns 8.92ns 0.516 0.00351 0 3.27 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 netcoreapp3.1 2.11μs 1.09ns 3.76ns 0.0263 0 0 1.93 KB
master EnrichedLog net472 2.72μs 1.5ns 5.79ns 0.324 0 0 2.05 KB
#3599 EnrichedLog netcoreapp3.1 2.16μs 1.14ns 4.42ns 0.026 0 0 1.93 KB
#3599 EnrichedLog net472 2.7μs 1.79ns 6.92ns 0.324 0 0 2.05 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 netcoreapp3.1 121μs 97.8ns 379ns 0.0603 0 0 4.51 KB
master EnrichedLog net472 147μs 144ns 556ns 0.734 0.22 0 4.89 KB
#3599 EnrichedLog netcoreapp3.1 120μs 124ns 466ns 0.0603 0 0 4.51 KB
#3599 EnrichedLog net472 149μs 81.4ns 305ns 0.744 0.223 0 4.89 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 netcoreapp3.1 4.19μs 1.84ns 7.12ns 0.0544 0 0 3.99 KB
master EnrichedLog net472 5.45μs 1ns 3.75ns 0.606 0.00272 0 3.82 KB
#3599 EnrichedLog netcoreapp3.1 4.15μs 1.98ns 7.43ns 0.0557 0 0 3.99 KB
#3599 EnrichedLog net472 5.49μs 1.19ns 4.44ns 0.604 0.00273 0 3.82 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 netcoreapp3.1 1.64μs 0.887ns 3.32ns 0.0173 0 0 1.3 KB
master SendReceive net472 2μs 2.32ns 8.97ns 0.212 0.000988 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.61μs 0.763ns 2.75ns 0.0176 0 0 1.3 KB
#3599 SendReceive net472 1.97μs 0.435ns 1.51ns 0.212 0 0 1.34 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 netcoreapp3.1 3.82μs 1.51ns 5.65ns 0.0248 0 0 1.88 KB
master EnrichedLog net472 4.58μs 0.918ns 3.31ns 0.391 0 0 2.46 KB
#3599 EnrichedLog netcoreapp3.1 3.92μs 1.33ns 4.99ns 0.0255 0 0 1.88 KB
#3599 EnrichedLog net472 4.56μs 0.907ns 3.51ns 0.391 0 0 2.46 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 netcoreapp3.1 679ns 0.993ns 3.84ns 0.0098 0 0 720 B
master StartFinishSpan net472 915ns 1.36ns 5.26ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 794ns 1.09ns 4.07ns 0.0111 0 0 840 B
master StartFinishScope net472 1.14μs 3.28ns 12.7ns 0.134 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 698ns 0.915ns 3.54ns 0.00982 0 0 720 B
#3599 StartFinishSpan net472 914ns 1.38ns 5.34ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 819ns 1.37ns 5.32ns 0.0111 0 0 840 B
#3599 StartFinishScope net472 1.1μs 1.41ns 5.29ns 0.134 0 0 842 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 netcoreapp3.1 960ns 1.14ns 4.28ns 0.0115 0 0 840 B
master RunOnMethodBegin net472 1.2μs 1.76ns 6.8ns 0.133 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 915ns 1.55ns 6.02ns 0.0114 0 0 840 B
#3599 RunOnMethodBegin net472 1.28μs 3.71ns 14.4ns 0.134 0 0 842 B

andrewlock avatar Apr 21 '23 18:04 andrewlock

Throughput/Crank Report:zap:

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (11.344M)   : 0, 11343799
    master (11.518M)   : 0, 11518445
    benchmarks/2.29.0 (11.245M)   : 0, 11244577
    benchmarks/2.9.0 (11.162M)   : 0, 11161538

    section Automatic
    This PR (3599) (7.843M)   : 0, 7842674
    master (8.048M)   : 0, 8048277
    benchmarks/2.29.0 (7.912M)   : 0, 7911517
    benchmarks/2.9.0 (8.099M)   : 0, 8099075

    section Trace stats
    master (7.955M)   : 0, 7955324
    benchmarks/2.29.0 (7.997M)   : 0, 7997437

    section Manual
    This PR (3599) (10.088M)   : 0, 10088183
    master (10.129M)   : 0, 10128783
    benchmarks/2.29.0 (10.132M)   : 0, 10132296

    section Manual + Automatic
    This PR (3599) (7.541M)   : 0, 7540821
    master (7.534M)   : 0, 7534073
    benchmarks/2.29.0 (7.561M)   : 0, 7560884

    section Version Conflict
    master (6.840M)   : 0, 6840413
    benchmarks/2.29.0 (6.822M)   : 0, 6821673

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (9.520M)   : 0, 9520225
    benchmarks/2.9.0 (9.705M)   : 0, 9704781

    section Automatic
    This PR (3599) (6.765M)   : 0, 6764792

    section Manual
    This PR (3599) (8.532M)   : 0, 8532377

    section Manual + Automatic
    This PR (3599) (6.609M)   : 0, 6609299

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (9.785M)   : 0, 9785158
    master (9.588M)   : 0, 9588185
    benchmarks/2.9.0 (9.827M)   : 0, 9827121

    section Automatic
    This PR (3599) (6.848M)   : 0, 6848061
    master (7.059M)   : 0, 7058901
    benchmarks/2.9.0 (7.246M)   : 0, 7246397

    section Trace stats
    master (7.088M)   : 0, 7088299

    section Manual
    This PR (3599) (8.507M)   : 0, 8507020
    master (8.629M)   : 0, 8628941

    section Manual + Automatic
    This PR (3599) (6.701M)   : 0, 6701316
    master (6.711M)   : 0, 6710747

    section Version Conflict
    master (5.907M)   : 0, 5906875

gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (7.758M)   : 0, 7757707
    master (7.680M)   : 0, 7680330
    benchmarks/2.29.0 (7.523M)   : 0, 7522675
    benchmarks/2.9.0 (7.748M)   : 0, 7748029

    section No attack
    This PR (3599) (2.576M)   : 0, 2575969
    master (2.573M)   : 0, 2573111
    benchmarks/2.29.0 (2.206M)   : 0, 2205660
    benchmarks/2.9.0 (3.274M)   : 0, 3273699

    section Attack
    This PR (3599) (2.199M)   : 0, 2199473
    master (2.188M)   : 0, 2187760
    benchmarks/2.29.0 (1.805M)   : 0, 1804952
    benchmarks/2.9.0 (2.598M)   : 0, 2597950

    section Blocking
    This PR (3599) (4.236M)   : 0, 4236387
    master (4.253M)   : 0, 4253222
    benchmarks/2.29.0 (3.709M)   : 0, 3709000

andrewlock avatar Apr 21 '23 19:04 andrewlock

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (2,995ms)  : 2878, 3111
     .   : milestone, 2995,
    master - mean (3,036ms)  : 2924, 3148
     .   : milestone, 3036,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,680ms)  : 3608, 3752
     .   : milestone, 3680,
    master - mean (3,684ms)  : 3616, 3752
     .   : milestone, 3684,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,116ms)  : 2993, 3239
     .   : milestone, 3116,
    master - mean (3,122ms)  : 3016, 3228
     .   : milestone, 3122,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,549ms)  : 3471, 3628
     .   : milestone, 3549,
    master - mean (3,559ms)  : 3466, 3652
     .   : milestone, 3559,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,128ms)  : 3002, 3254
     .   : milestone, 3128,
    master - mean (3,140ms)  : 3073, 3207
     .   : milestone, 3140,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,521ms)  : 3416, 3625
     .   : milestone, 3521,
    master - mean (3,497ms)  : 3426, 3567
     .   : milestone, 3497,

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

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (956ms)  : 913, 999
     .   : milestone, 956,
    master - mean (937ms)  : 912, 961
     .   : milestone, 937,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (367ms)  : 361, 374
     .   : milestone, 367,
    master - mean (368ms)  : 361, 375
     .   : milestone, 368,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,091ms)  : 1057, 1125
     .   : milestone, 1091,
    master - mean (1,088ms)  : 1059, 1117
     .   : milestone, 1088,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (355ms)  : 349, 360
     .   : milestone, 355,
    master - mean (353ms)  : 348, 359
     .   : milestone, 353,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,040ms)  : 1003, 1076
     .   : milestone, 1040,
    master - mean (1,032ms)  : 1002, 1061
     .   : milestone, 1032,

andrewlock avatar Apr 24 '23 17:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 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 netcoreapp3.1 627μs 215ns 804ns 0 0 0 2.63 KB
master WriteAndFlushEnrichedTraces net472 840μs 204ns 790ns 0.419 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 607μs 191ns 741ns 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 839μs 380ns 1.47μs 0.422 0 0 3.22 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 netcoreapp3.1 37.9μs 96.7ns 375ns 0.019 0 0 1.66 KB
master AllCycleSimpleBody net472 38.9μs 54.6ns 212ns 0.271 0 0 1.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 206μs 263ns 983ns 0.103 0 0 9.15 KB
master AllCycleMoreComplexBody net472 213μs 338ns 1.31μs 1.39 0 0 9.32 KB
master ObjectExtractorSimpleBody netcoreapp3.1 164ns 0.185ns 0.718ns 0.00375 0 0 272 B
master ObjectExtractorSimpleBody net472 145ns 0.21ns 0.815ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.08μs 5.7ns 21.3ns 0.0511 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.09μs 6.5ns 25.2ns 0.618 0.00614 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 37.9μs 74.5ns 289ns 0.0191 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 38.1μs 53.3ns 206ns 0.269 0 0 1.72 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 204μs 288ns 1.08μs 0.102 0 0 9.15 KB
#3599 AllCycleMoreComplexBody net472 214μs 233ns 903ns 1.39 0 0 9.32 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 169ns 0.588ns 2.2ns 0.00372 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 151ns 0.157ns 0.61ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 4.16μs 7.66ns 29.7ns 0.0515 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.12μs 8.63ns 33.4ns 0.618 0.00618 0 3.89 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 netcoreapp3.1 181μs 108ns 375ns 0.181 0 0 20.38 KB
master SendRequest net472 0.000936ns 0.000297ns 0.00115ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 183μs 175ns 679ns 0.274 0 0 20.38 KB
#3599 SendRequest net472 1.18E‑06ns 1.18E‑06ns 4.26E‑06ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 617μs 1.19μs 4.61μs 0.314 0 0 41.62 KB
master WriteAndFlushEnrichedTraces net472 795μs 3.79μs 14.7μs 8.15 2.33 0.388 53.23 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 622μs 1.13μs 4.22μs 0.309 0 0 41.75 KB
#3599 WriteAndFlushEnrichedTraces net472 812μs 2.79μs 10.8μs 8.25 2.36 0.393 53.21 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 netcoreapp3.1 1.3μs 0.932ns 3.36ns 0.0123 0 0 904 B
master ExecuteNonQuery net472 1.66μs 2.11ns 8.16ns 0.144 0.000831 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.34μs 0.549ns 1.98ns 0.0124 0 0 904 B
#3599 ExecuteNonQuery net472 1.67μs 1.41ns 5.47ns 0.144 0 0 907 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 netcoreapp3.1 1.37μs 0.43ns 1.61ns 0.0144 0 0 1.06 KB
master CallElasticsearch net472 2.19μs 0.911ns 3.53ns 0.176 0.00111 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.41μs 0.711ns 2.66ns 0.0155 0 0 1.18 KB
master CallElasticsearchAsync net472 2.28μs 0.62ns 2.24ns 0.197 0.00123 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.34μs 0.774ns 3ns 0.0142 0 0 1.06 KB
#3599 CallElasticsearch net472 2.19μs 0.573ns 2.22ns 0.175 0.0011 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.41μs 0.552ns 2.07ns 0.0157 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.38μs 1.18ns 4.56ns 0.197 0.00119 0 1.24 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 netcoreapp3.1 1.45μs 1.61ns 6.22ns 0.0174 0 0 1.28 KB
master ExecuteAsync net472 1.91μs 0.705ns 2.54ns 0.206 0.000962 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.48μs 0.81ns 3.03ns 0.0171 0 0 1.28 KB
#3599 ExecuteAsync net472 1.77μs 0.458ns 1.65ns 0.207 0.000886 0 1.3 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 netcoreapp3.1 4.28μs 0.694ns 2.6ns 0.0364 0 0 2.66 KB
master SendAsync net472 6.93μs 1.17ns 4.4ns 0.517 0.00345 0 3.27 KB
#3599 SendAsync netcoreapp3.1 4.36μs 1.01ns 3.63ns 0.0349 0 0 2.66 KB
#3599 SendAsync net472 7.04μs 2.08ns 8.06ns 0.519 0.00353 0 3.27 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 netcoreapp3.1 2.2μs 0.733ns 2.74ns 0.0265 0 0 1.93 KB
master EnrichedLog net472 2.72μs 2.77ns 10.4ns 0.324 0 0 2.05 KB
#3599 EnrichedLog netcoreapp3.1 2.02μs 1.1ns 4.11ns 0.0263 0 0 1.93 KB
#3599 EnrichedLog net472 2.76μs 1.65ns 6.16ns 0.325 0 0 2.05 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 netcoreapp3.1 121μs 133ns 461ns 0 0 0 4.51 KB
master EnrichedLog net472 150μs 104ns 403ns 0.748 0.224 0 4.89 KB
#3599 EnrichedLog netcoreapp3.1 121μs 151ns 566ns 0 0 0 4.51 KB
#3599 EnrichedLog net472 148μs 46.6ns 174ns 0.743 0.223 0 4.89 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 netcoreapp3.1 4.23μs 4.3ns 16.1ns 0.0548 0 0 3.99 KB
master EnrichedLog net472 5.38μs 1.39ns 5.19ns 0.604 0.00269 0 3.82 KB
#3599 EnrichedLog netcoreapp3.1 4.07μs 1.24ns 4.65ns 0.0551 0 0 3.99 KB
#3599 EnrichedLog net472 5.31μs 0.939ns 3.51ns 0.606 0.00263 0 3.82 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 netcoreapp3.1 1.59μs 0.575ns 1.99ns 0.0174 0 0 1.3 KB
master SendReceive net472 1.94μs 1.32ns 4.77ns 0.213 0 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.54μs 0.45ns 1.68ns 0.0177 0 0 1.3 KB
#3599 SendReceive net472 1.93μs 0.736ns 2.85ns 0.213 0 0 1.34 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 netcoreapp3.1 3.82μs 1.64ns 6.37ns 0.0249 0 0 1.88 KB
master EnrichedLog net472 4.61μs 2.45ns 9.18ns 0.39 0 0 2.46 KB
#3599 EnrichedLog netcoreapp3.1 3.89μs 0.952ns 3.56ns 0.0254 0 0 1.88 KB
#3599 EnrichedLog net472 4.61μs 1.87ns 7.26ns 0.391 0 0 2.46 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 netcoreapp3.1 687ns 1ns 3.75ns 0.00992 0 0 720 B
master StartFinishSpan net472 894ns 1.45ns 5.44ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 881ns 0.972ns 3.77ns 0.0115 0 0 840 B
master StartFinishScope net472 1.09μs 1.91ns 7.41ns 0.133 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 754ns 1.22ns 4.71ns 0.00981 0 0 720 B
#3599 StartFinishSpan net472 837ns 1.28ns 4.96ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 905ns 0.906ns 3.51ns 0.0112 0 0 840 B
#3599 StartFinishScope net472 1.21μs 1.13ns 4.38ns 0.134 0 0 842 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 netcoreapp3.1 950ns 0.873ns 3.38ns 0.0113 0 0 840 B
master RunOnMethodBegin net472 1.22μs 1.8ns 6.96ns 0.134 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 985ns 1ns 3.88ns 0.0112 0 0 840 B
#3599 RunOnMethodBegin net472 1.24μs 1.78ns 6.64ns 0.133 0 0 842 B

andrewlock avatar Apr 24 '23 17:04 andrewlock

Datadog Report

Branch report: lpimentel/refactor-span-context-1 Commit report: dbe773b

:white_check_mark: dd-trace-dotnet: 0 Failed, 0 New Flaky, 245690 Passed, 925 Skipped, 27m 0.03s Wall Time

datadog-ddstaging[bot] avatar Apr 25 '23 22:04 datadog-ddstaging[bot]

Execution-Time Benchmarks Report :stopwatch:

Execution-time results for samples comparing the following branches/commits:

Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,030ms)  : 2950, 3110
     .   : milestone, 3030,
    master - mean (3,008ms)  : 2908, 3108
     .   : milestone, 3008,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,685ms)  : 3576, 3795
     .   : milestone, 3685,
    master - mean (3,679ms)  : 3562, 3796
     .   : milestone, 3679,

gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,095ms)  : 2966, 3224
     .   : milestone, 3095,
    master - mean (3,133ms)  : 2985, 3280
     .   : milestone, 3133,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,547ms)  : 3468, 3625
     .   : milestone, 3547,
    master - mean (3,551ms)  : 3473, 3629
     .   : milestone, 3551,

gantt
    title Execution time (ms) FakeDbCommand (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (3,109ms)  : 2994, 3223
     .   : milestone, 3109,
    master - mean (3,110ms)  : 3023, 3197
     .   : milestone, 3110,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (3,513ms)  : 3421, 3604
     .   : milestone, 3513,
    master - mean (3,507ms)  : 3417, 3597
     .   : milestone, 3507,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (187ms)  : 184, 191
     .   : milestone, 187,
    master - mean (188ms)  : 183, 192
     .   : milestone, 188,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (951ms)  : 915, 987
     .   : milestone, 951,
    master - mean (955ms)  : 923, 987
     .   : milestone, 955,

gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (366ms)  : 361, 371
     .   : milestone, 366,
    master - mean (367ms)  : 362, 372
     .   : milestone, 367,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,091ms)  : 1055, 1128
     .   : milestone, 1091,
    master - mean (1,089ms)  : 1058, 1120
     .   : milestone, 1089,

gantt
    title Execution time (ms) HttpMessageHandler (.NET 6) 
    dateFormat  X
    axisFormat %s
    todayMarker off
    section Baseline
    This PR (3599) - mean (355ms)  : 347, 364
     .   : milestone, 355,
    master - mean (355ms)  : 350, 360
     .   : milestone, 355,

    section CallTarget+Inlining+NGEN
    This PR (3599) - mean (1,033ms)  : 1001, 1065
     .   : milestone, 1033,
    master - mean (1,034ms)  : 1005, 1063
     .   : milestone, 1034,

andrewlock avatar Apr 25 '23 22:04 andrewlock

Benchmarks Report :snail:

Benchmarks for #3599 compared to master:

  • 1 benchmarks are faster, with geometric mean 1.167
  • 1 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

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

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.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 netcoreapp3.1 636μs 653ns 2.53μs 0 0 0 2.62 KB
master WriteAndFlushEnrichedTraces net472 815μs 247ns 891ns 0.408 0 0 3.22 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 624μs 211ns 791ns 0 0 0 2.63 KB
#3599 WriteAndFlushEnrichedTraces net472 813μs 120ns 434ns 0.408 0 0 3.22 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 netcoreapp3.1 37.2μs 47.3ns 177ns 0.0189 0 0 1.66 KB
master AllCycleSimpleBody net472 39μs 32.1ns 124ns 0.268 0 0 1.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 205μs 363ns 1.4μs 0.101 0 0 9.15 KB
master AllCycleMoreComplexBody net472 213μs 191ns 738ns 1.48 0 0 9.32 KB
master ObjectExtractorSimpleBody netcoreapp3.1 166ns 0.116ns 0.436ns 0.00374 0 0 272 B
master ObjectExtractorSimpleBody net472 146ns 0.257ns 0.996ns 0.0446 0 0 281 B
master ObjectExtractorMoreComplexBody netcoreapp3.1 4.02μs 2.62ns 9.79ns 0.0519 0 0 3.78 KB
master ObjectExtractorMoreComplexBody net472 4.11μs 5.33ns 20.6ns 0.617 0.00613 0 3.89 KB
#3599 AllCycleSimpleBody netcoreapp3.1 37.9μs 73.8ns 286ns 0.0194 0 0 1.66 KB
#3599 AllCycleSimpleBody net472 38.8μs 32.1ns 120ns 0.268 0 0 1.72 KB
#3599 AllCycleMoreComplexBody netcoreapp3.1 205μs 461ns 1.78μs 0.103 0 0 9.15 KB
#3599 AllCycleMoreComplexBody net472 213μs 255ns 989ns 1.38 0 0 9.32 KB
#3599 ObjectExtractorSimpleBody netcoreapp3.1 174ns 0.336ns 1.3ns 0.0037 0 0 272 B
#3599 ObjectExtractorSimpleBody net472 148ns 0.24ns 0.929ns 0.0446 0 0 281 B
#3599 ObjectExtractorMoreComplexBody netcoreapp3.1 4.12μs 3.82ns 14.8ns 0.0519 0 0 3.78 KB
#3599 ObjectExtractorMoreComplexBody net472 4.15μs 4.45ns 17.2ns 0.618 0.00612 0 3.89 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 netcoreapp3.1 182μs 138ns 535ns 0.181 0 0 20.37 KB
master SendRequest net472 0.000218ns 0.000125ns 0.000484ns 0 0 0 0 b
#3599 SendRequest netcoreapp3.1 185μs 328ns 1.27μs 0.183 0 0 20.38 KB
#3599 SendRequest net472 0.000706ns 0.000247ns 0.000958ns 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed :heavy_check_mark: More allocations :warning:

More allocations :warning: in #3599

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 41.67 KB 41.93 KB 255 B 0.61%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces netcoreapp3.1 627μs 1.38μs 5.16μs 0.316 0 0 41.67 KB
master WriteAndFlushEnrichedTraces net472 811μs 3.89μs 16μs 8.41 2.4 0.401 53.26 KB
#3599 WriteAndFlushEnrichedTraces netcoreapp3.1 613μs 1.43μs 5.52μs 0.312 0 0 41.93 KB
#3599 WriteAndFlushEnrichedTraces net472 782μs 2.59μs 10μs 8.15 2.33 0.388 53.26 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 netcoreapp3.1 1.3μs 1.06ns 4.11ns 0.0122 0 0 904 B
master ExecuteNonQuery net472 1.71μs 2.13ns 8.25ns 0.144 0 0 907 B
#3599 ExecuteNonQuery netcoreapp3.1 1.34μs 0.48ns 1.66ns 0.012 0 0 904 B
#3599 ExecuteNonQuery net472 1.71μs 2.35ns 9.08ns 0.143 0 0 907 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 netcoreapp3.1 1.34μs 0.421ns 1.57ns 0.0141 0 0 1.06 KB
master CallElasticsearch net472 2.19μs 0.769ns 2.77ns 0.175 0 0 1.11 KB
master CallElasticsearchAsync netcoreapp3.1 1.41μs 0.848ns 3.17ns 0.0161 0 0 1.18 KB
master CallElasticsearchAsync net472 2.41μs 0.692ns 2.59ns 0.198 0.0012 0 1.24 KB
#3599 CallElasticsearch netcoreapp3.1 1.34μs 0.625ns 2.34ns 0.0143 0 0 1.06 KB
#3599 CallElasticsearch net472 2.07μs 0.594ns 2.14ns 0.175 0.00105 0 1.11 KB
#3599 CallElasticsearchAsync netcoreapp3.1 1.38μs 0.358ns 1.29ns 0.0158 0 0 1.18 KB
#3599 CallElasticsearchAsync net472 2.35μs 1.15ns 4.3ns 0.197 0.00117 0 1.24 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 netcoreapp3.1 1.44μs 0.398ns 1.43ns 0.0173 0 0 1.28 KB
master ExecuteAsync net472 1.96μs 0.679ns 2.63ns 0.206 0 0 1.3 KB
#3599 ExecuteAsync netcoreapp3.1 1.45μs 0.837ns 3.24ns 0.0174 0 0 1.28 KB
#3599 ExecuteAsync net472 1.84μs 0.51ns 1.98ns 0.206 0.000919 0 1.3 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 netcoreapp3.1 4.33μs 3.14ns 12.1ns 0.0346 0 0 2.66 KB
master SendAsync net472 7μs 2.07ns 8.03ns 0.517 0 0 3.27 KB
#3599 SendAsync netcoreapp3.1 4.3μs 2.23ns 8.33ns 0.0364 0 0 2.66 KB
#3599 SendAsync net472 6.95μs 1.49ns 5.77ns 0.518 0 0 3.27 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 netcoreapp3.1 2.2μs 0.47ns 1.63ns 0.0267 0 0 1.93 KB
master EnrichedLog net472 2.79μs 2.18ns 8.16ns 0.324 0 0 2.05 KB
#3599 EnrichedLog netcoreapp3.1 2.17μs 0.575ns 2.15ns 0.0261 0 0 1.93 KB
#3599 EnrichedLog net472 2.82μs 1.31ns 4.9ns 0.324 0 0 2.05 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 netcoreapp3.1 120μs 134ns 500ns 0 0 0 4.51 KB
master EnrichedLog net472 147μs 153ns 574ns 0.735 0.22 0 4.89 KB
#3599 EnrichedLog netcoreapp3.1 120μs 129ns 498ns 0.0602 0 0 4.51 KB
#3599 EnrichedLog net472 149μs 95.8ns 358ns 0.743 0.223 0 4.89 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 netcoreapp3.1 4.11μs 1.69ns 6.34ns 0.0539 0 0 3.99 KB
master EnrichedLog net472 5.4μs 1.59ns 5.95ns 0.606 0.00269 0 3.82 KB
#3599 EnrichedLog netcoreapp3.1 3.94μs 1.76ns 6.6ns 0.0554 0 0 3.99 KB
#3599 EnrichedLog net472 5.5μs 1.25ns 4.51ns 0.605 0.00274 0 3.82 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 netcoreapp3.1 1.56μs 0.604ns 2.26ns 0.0179 0 0 1.3 KB
master SendReceive net472 1.98μs 1.83ns 7.08ns 0.213 0 0 1.34 KB
#3599 SendReceive netcoreapp3.1 1.57μs 0.591ns 2.29ns 0.0181 0 0 1.3 KB
#3599 SendReceive net472 2μs 0.755ns 2.72ns 0.212 0 0 1.34 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 netcoreapp3.1 3.74μs 0.843ns 3.15ns 0.0245 0 0 1.88 KB
master EnrichedLog net472 4.51μs 2.5ns 9.67ns 0.391 0 0 2.46 KB
#3599 EnrichedLog netcoreapp3.1 3.85μs 1.27ns 4.77ns 0.0251 0 0 1.88 KB
#3599 EnrichedLog net472 4.71μs 0.99ns 3.71ns 0.39 0 0 2.46 KB
Benchmarks.Trace.SpanBenchmark - Faster :tada: Same allocations :heavy_check_mark:

Faster :tada: in #3599

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.SpanBenchmark.StartFinishSpan‑netcoreapp3.1 1.167 802.57 687.66

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan netcoreapp3.1 802ns 0.354ns 1.33ns 0.00974 0 0 720 B
master StartFinishSpan net472 954ns 0.424ns 1.64ns 0.121 0 0 762 B
master StartFinishScope netcoreapp3.1 886ns 0.293ns 1.14ns 0.0111 0 0 840 B
master StartFinishScope net472 1.11μs 0.441ns 1.71ns 0.134 0 0 842 B
#3599 StartFinishSpan netcoreapp3.1 688ns 0.362ns 1.35ns 0.00989 0 0 720 B
#3599 StartFinishSpan net472 908ns 0.278ns 1.08ns 0.121 0 0 762 B
#3599 StartFinishScope netcoreapp3.1 869ns 0.282ns 1.06ns 0.0117 0 0 840 B
#3599 StartFinishScope net472 1.09μs 0.623ns 2.41ns 0.134 0 0 842 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 netcoreapp3.1 926ns 0.57ns 2.13ns 0.0112 0 0 840 B
master RunOnMethodBegin net472 1.27μs 0.663ns 2.39ns 0.134 0 0 842 B
#3599 RunOnMethodBegin netcoreapp3.1 916ns 0.305ns 1.1ns 0.0115 0 0 840 B
#3599 RunOnMethodBegin net472 1.24μs 0.395ns 1.42ns 0.133 0 0 842 B

andrewlock avatar Apr 25 '23 22:04 andrewlock

Throughput/Crank Report:zap:

Throughput results for AspNetCoreSimpleController comparing the following branches/commits:

Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red.

Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards!

gantt
    title Throughput Linux x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (10.959M)   : 0, 10958772
    master (10.252M)   : 0, 10251821
    benchmarks/2.29.0 (11.022M)   : 0, 11021871
    benchmarks/2.9.0 (11.162M)   : 0, 11161538

    section Automatic
    This PR (3599) (7.500M)   : 0, 7500422
    master (7.309M)   : 0, 7308950
    benchmarks/2.29.0 (7.733M)   : 0, 7733169
    benchmarks/2.9.0 (8.099M)   : 0, 8099075

    section Trace stats
    master (7.445M)   : 0, 7445089
    benchmarks/2.29.0 (7.685M)   : 0, 7685197

    section Manual
    This PR (3599) (9.550M)   : 0, 9550046
    master (9.358M)   : 0, 9357771
    benchmarks/2.29.0 (9.604M)   : 0, 9604487

    section Manual + Automatic
    This PR (3599) (7.205M)   : 0, 7204612
    master (7.114M)   : 0, 7114280
    benchmarks/2.29.0 (7.363M)   : 0, 7363010

    section Version Conflict
    master (6.352M)   : 0, 6352064
    benchmarks/2.29.0 (6.686M)   : 0, 6686344

gantt
    title Throughput Linux arm64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (9.713M)   : 0, 9712615
    benchmarks/2.29.0 (9.666M)   : 0, 9666366
    benchmarks/2.9.0 (9.705M)   : 0, 9704781

    section Automatic
    This PR (3599) (6.746M)   : 0, 6745877
    benchmarks/2.29.0 (6.724M)   : 0, 6724264

    section Trace stats
    benchmarks/2.29.0 (6.832M)   : 0, 6832104

    section Manual
    This PR (3599) (8.235M)   : 0, 8234504
    benchmarks/2.29.0 (8.370M)   : 0, 8370298

    section Manual + Automatic
    This PR (3599) (6.451M)   : 0, 6450523
    benchmarks/2.29.0 (6.510M)   : 0, 6510396

    section Version Conflict
    benchmarks/2.29.0 (5.932M)   : 0, 5931812

gantt
    title Throughput Windows x64 (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (9.752M)   : 0, 9752207
    master (9.690M)   : 0, 9689634
    benchmarks/2.9.0 (9.827M)   : 0, 9827121

    section Automatic
    This PR (3599) (7.176M)   : 0, 7175933
    master (7.012M)   : 0, 7011561
    benchmarks/2.9.0 (7.246M)   : 0, 7246397

    section Trace stats
    master (7.020M)   : 0, 7020104

    section Manual
    This PR (3599) (8.815M)   : 0, 8814704
    master (8.852M)   : 0, 8851566

    section Manual + Automatic
    This PR (3599) (6.888M)   : 0, 6888299
    master (6.967M)   : 0, 6967315

    section Version Conflict
    master (6.011M)   : 0, 6010850

gantt
    title Throughput Linux x64 (ASM) (Total requests) 
    dateFormat  X
    axisFormat %s
    section Baseline
    This PR (3599) (7.552M)   : 0, 7551615
    master (7.606M)   : 0, 7606221
    benchmarks/2.29.0 (7.614M)   : 0, 7614181
    benchmarks/2.9.0 (7.748M)   : 0, 7748029

    section No attack
    This PR (3599) (2.538M)   : 0, 2538348
    master (2.565M)   : 0, 2564714
    benchmarks/2.29.0 (1.958M)   : 0, 1958192
    benchmarks/2.9.0 (3.274M)   : 0, 3273699

    section Attack
    This PR (3599) (2.149M)   : 0, 2148794
    master (2.148M)   : 0, 2148119
    benchmarks/2.29.0 (1.719M)   : 0, 1718783
    benchmarks/2.9.0 (2.598M)   : 0, 2597950

    section Blocking
    This PR (3599) (4.211M)   : 0, 4211328
    master (4.216M)   : 0, 4215756
    benchmarks/2.29.0 (3.741M)   : 0, 3740843

andrewlock avatar Apr 26 '23 11:04 andrewlock