[DRAFT] [Tracer] `SpanContext` refactor part 1: remove `Span.Context` property
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:
- (this PR) #3599
- 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.
- 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.
...
- (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
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)
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 |
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 |
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)
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 |
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.
View the full reports for further details:
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 |
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
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 |
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
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"
}] =
..
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,
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 |
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,
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 |
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,
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 |
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,
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 |
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,
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 |
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,
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 |
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
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,
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 |
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
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,
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 |
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