[Tracer] Update RabbitMQ sample
Open
pierotibou
opened this issue 3 years ago
•
5 comments
Summary of changes
Updating rabbitMQ sample as it was still showing a version without propagation
Reason for change
Wan asked for a sample in an escalation, I realized it was outdated.
Implementation details
Changed the consumer to read from a loop in order to use the context extraction api. The rest is supposed to be straightforward
Test coverage
Tested locally
Other details
I've also realized that the snapshots checker had 2 small issues, corrected them here.
Benchmarks Report :snail:
Benchmarks for #3072 compared to master:
- 3 benchmarks are faster, with geometric mean 1.227
- 1 benchmarks are slower, with geometric mean 1.137
- All benchmarks have the same allocations
The following thresholds were used for comparing the benchmark speeds:
- Mann–Whitney U test with statistical test for significance of 5%
- Only results indicating a difference greater than 10% and 0.3 ns are considered.
Allocation changes below 0.5% are ignored.
Benchmark details
Benchmarks.Trace.AgentWriterBenchmark - Faster :tada: Same allocations :heavy_check_mark:
Faster :tada: in #3072
| Benchmark |
base/diff |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 |
1.133 |
527,143.46 |
465,377.14 |
|
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
WriteAndFlushEnrichedTraces |
net472 |
792μs |
4.32μs |
24.4μs |
0.391 |
0 |
0 |
3.18 KB |
| master |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
529μs |
3.02μs |
22.6μs |
0 |
0 |
0 |
2.58 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
net472 |
728μs |
324ns |
1.21μs |
0.361 |
0 |
0 |
3.18 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
465μs |
113ns |
392ns |
0 |
0 |
0 |
2.58 KB |
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:
Faster :tada: in #3072
| Benchmark |
base/diff |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 |
1.138 |
204.95 |
180.10 |
|
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
AllCycleSimpleBody |
net472 |
205ns |
0.137ns |
0.493ns |
0.0676 |
0 |
0 |
425 B |
| master |
AllCycleSimpleBody |
netcoreapp3.1 |
234ns |
0.27ns |
1.05ns |
0.00594 |
0 |
0 |
424 B |
| master |
AllCycleMoreComplexBody |
net472 |
182ns |
0.151ns |
0.566ns |
0.0638 |
0 |
0 |
401 B |
| master |
AllCycleMoreComplexBody |
netcoreapp3.1 |
236ns |
0.314ns |
1.22ns |
0.00542 |
0 |
0 |
400 B |
| master |
BodyExtractorSimpleBody |
net472 |
259ns |
0.152ns |
0.549ns |
0.0574 |
0 |
0 |
361 B |
| master |
BodyExtractorSimpleBody |
netcoreapp3.1 |
216ns |
0.355ns |
1.37ns |
0.0038 |
0 |
0 |
272 B |
| master |
BodyExtractorMoreComplexBody |
net472 |
14.2μs |
9.8ns |
37.9ns |
1.21 |
0.0215 |
0 |
7.62 KB |
| master |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
12.5μs |
20.2ns |
72.8ns |
0.0933 |
0 |
0 |
6.75 KB |
| #3072 |
AllCycleSimpleBody |
net472 |
180ns |
0.125ns |
0.452ns |
0.0675 |
9.17E-05 |
0 |
425 B |
| #3072 |
AllCycleSimpleBody |
netcoreapp3.1 |
236ns |
0.261ns |
1.01ns |
0.00587 |
0 |
0 |
424 B |
| #3072 |
AllCycleMoreComplexBody |
net472 |
186ns |
1ns |
5.59ns |
0.0637 |
0 |
0 |
401 B |
| #3072 |
AllCycleMoreComplexBody |
netcoreapp3.1 |
237ns |
0.294ns |
1.14ns |
0.00551 |
0 |
0 |
400 B |
| #3072 |
BodyExtractorSimpleBody |
net472 |
264ns |
0.313ns |
1.21ns |
0.0573 |
0 |
0 |
361 B |
| #3072 |
BodyExtractorSimpleBody |
netcoreapp3.1 |
217ns |
0.256ns |
0.993ns |
0.00372 |
0 |
0 |
272 B |
| #3072 |
BodyExtractorMoreComplexBody |
net472 |
14.4μs |
16.2ns |
62.7ns |
1.2 |
0.0216 |
0 |
7.62 KB |
| #3072 |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
12.3μs |
6.59ns |
24.6ns |
0.092 |
0 |
0 |
6.75 KB |
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendRequest |
net472 |
0.0624ns |
0.0151ns |
0.0918ns |
0 |
0 |
0 |
0 b |
| master |
SendRequest |
netcoreapp3.1 |
189μs |
77.1ns |
267ns |
0.188 |
0 |
0 |
20.33 KB |
| #3072 |
SendRequest |
net472 |
0ns |
0ns |
0ns |
0 |
0 |
0 |
0 b |
| #3072 |
SendRequest |
netcoreapp3.1 |
179μs |
128ns |
495ns |
0.267 |
0 |
0 |
20.33 KB |
Benchmarks.Trace.DbCommandBenchmark - Faster :tada: Same allocations :heavy_check_mark:
Faster :tada: in #3072
| Benchmark |
base/diff |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 |
1.433 |
1,762.88 |
1,229.88 |
bimodal |
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteNonQuery |
net472 |
1.69μs |
9.36ns |
54.6ns |
0.126 |
0.000827 |
0 |
794 B |
| master |
ExecuteNonQuery |
netcoreapp3.1 |
1.77μs |
15.2ns |
152ns |
0.0112 |
0 |
0 |
824 B |
| #3072 |
ExecuteNonQuery |
net472 |
1.53μs |
0.31ns |
1.2ns |
0.126 |
0.000766 |
0 |
794 B |
| #3072 |
ExecuteNonQuery |
netcoreapp3.1 |
1.23μs |
0.357ns |
1.29ns |
0.0111 |
0 |
0 |
824 B |
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
CallElasticsearch |
net472 |
2.17μs |
0.518ns |
1.87ns |
0.159 |
0 |
0 |
1 KB |
| master |
CallElasticsearch |
netcoreapp3.1 |
1.4μs |
0.68ns |
2.64ns |
0.0131 |
0 |
0 |
984 B |
| master |
CallElasticsearchAsync |
net472 |
2.28μs |
4.84ns |
18.8ns |
0.181 |
0 |
0 |
1.14 KB |
| master |
CallElasticsearchAsync |
netcoreapp3.1 |
1.43μs |
0.529ns |
1.98ns |
0.015 |
0 |
0 |
1.1 KB |
| #3072 |
CallElasticsearch |
net472 |
2.18μs |
0.655ns |
2.36ns |
0.159 |
0 |
0 |
1 KB |
| #3072 |
CallElasticsearch |
netcoreapp3.1 |
1.4μs |
0.957ns |
3.58ns |
0.0132 |
0 |
0 |
984 B |
| #3072 |
CallElasticsearchAsync |
net472 |
2.29μs |
0.601ns |
2.33ns |
0.181 |
0 |
0 |
1.14 KB |
| #3072 |
CallElasticsearchAsync |
netcoreapp3.1 |
1.57μs |
0.365ns |
1.31ns |
0.0149 |
0 |
0 |
1.1 KB |
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteAsync |
net472 |
2.48μs |
3.1ns |
12ns |
0.2 |
0 |
0 |
1.26 KB |
| master |
ExecuteAsync |
netcoreapp3.1 |
1.56μs |
1.66ns |
6.2ns |
0.0163 |
0 |
0 |
1.22 KB |
| #3072 |
ExecuteAsync |
net472 |
2.31μs |
1.4ns |
5.44ns |
0.2 |
0 |
0 |
1.26 KB |
| #3072 |
ExecuteAsync |
netcoreapp3.1 |
1.54μs |
1.97ns |
7.61ns |
0.0169 |
0 |
0 |
1.22 KB |
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendAsync |
net472 |
5.06μs |
6.98ns |
26.1ns |
0.392 |
0 |
0 |
2.48 KB |
| master |
SendAsync |
netcoreapp3.1 |
3.3μs |
4.05ns |
15.7ns |
0.031 |
0 |
0 |
2.36 KB |
| #3072 |
SendAsync |
net472 |
5.05μs |
2.27ns |
8.77ns |
0.392 |
0 |
0 |
2.48 KB |
| #3072 |
SendAsync |
netcoreapp3.1 |
3.22μs |
1.74ns |
6.52ns |
0.0322 |
0 |
0 |
2.36 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
2.83μs |
0.751ns |
2.81ns |
0.263 |
0 |
0 |
1.66 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
2.29μs |
0.476ns |
1.72ns |
0.0231 |
0 |
0 |
1.73 KB |
| #3072 |
EnrichedLog |
net472 |
2.93μs |
1.57ns |
6.06ns |
0.264 |
0 |
0 |
1.66 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
2.29μs |
1.38ns |
5.33ns |
0.0241 |
0 |
0 |
1.73 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
149μs |
77.9ns |
302ns |
0.675 |
0.225 |
0 |
4.5 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
113μs |
107ns |
399ns |
0.0566 |
0 |
0 |
4.38 KB |
| #3072 |
EnrichedLog |
net472 |
149μs |
156ns |
604ns |
0.679 |
0.226 |
0 |
4.5 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
113μs |
272ns |
1.05μs |
0.0562 |
0 |
0 |
4.38 KB |
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
5.62μs |
8.3ns |
32.1ns |
0.545 |
0.00281 |
0 |
3.43 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.31μs |
5.04ns |
19.5ns |
0.0514 |
0 |
0 |
3.8 KB |
| #3072 |
EnrichedLog |
net472 |
5.6μs |
2.13ns |
8.23ns |
0.543 |
0.0028 |
0 |
3.43 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.2μs |
1.4ns |
5.24ns |
0.0521 |
0 |
0 |
3.8 KB |
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendReceive |
net472 |
1.99μs |
1.03ns |
4ns |
0.193 |
0 |
0 |
1.22 KB |
| master |
SendReceive |
netcoreapp3.1 |
1.73μs |
0.707ns |
2.65ns |
0.0165 |
0 |
0 |
1.21 KB |
| #3072 |
SendReceive |
net472 |
1.95μs |
0.332ns |
1.24ns |
0.194 |
0 |
0 |
1.22 KB |
| #3072 |
SendReceive |
netcoreapp3.1 |
1.62μs |
0.724ns |
2.81ns |
0.0163 |
0 |
0 |
1.21 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
4.66μs |
1.38ns |
5.33ns |
0.329 |
0 |
0 |
2.08 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.09μs |
2ns |
7.73ns |
0.0226 |
0 |
0 |
1.69 KB |
| #3072 |
EnrichedLog |
net472 |
4.84μs |
2.02ns |
7.83ns |
0.33 |
0 |
0 |
2.08 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.06μs |
1.75ns |
6.76ns |
0.0223 |
0 |
0 |
1.69 KB |
Benchmarks.Trace.SpanBenchmark - Slower :warning: Same allocations :heavy_check_mark:
Slower :warning: in #3072
| Benchmark |
diff/base |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net472 |
1.137 |
1,013.50 |
1,152.21 |
|
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
StartFinishSpan |
net472 |
832ns |
0.252ns |
0.944ns |
0.104 |
0 |
0 |
658 B |
| master |
StartFinishSpan |
netcoreapp3.1 |
776ns |
1.78ns |
6.88ns |
0.00885 |
0 |
0 |
648 B |
| master |
StartFinishScope |
net472 |
1.01μs |
0.27ns |
1.05ns |
0.117 |
0 |
0 |
738 B |
| master |
StartFinishScope |
netcoreapp3.1 |
930ns |
0.337ns |
1.26ns |
0.0102 |
0 |
0 |
768 B |
| #3072 |
StartFinishSpan |
net472 |
900ns |
0.236ns |
0.912ns |
0.104 |
0 |
0 |
658 B |
| #3072 |
StartFinishSpan |
netcoreapp3.1 |
811ns |
0.172ns |
0.644ns |
0.00884 |
0 |
0 |
648 B |
| #3072 |
StartFinishScope |
net472 |
1.15μs |
1.2ns |
4.63ns |
0.117 |
0 |
0 |
738 B |
| #3072 |
StartFinishScope |
netcoreapp3.1 |
844ns |
0.891ns |
3.33ns |
0.0105 |
0 |
0 |
768 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
RunOnMethodBegin |
net472 |
1.22μs |
0.858ns |
3.32ns |
0.117 |
0 |
0 |
738 B |
| master |
RunOnMethodBegin |
netcoreapp3.1 |
1.01μs |
0.329ns |
1.19ns |
0.0102 |
0 |
0 |
768 B |
| #3072 |
RunOnMethodBegin |
net472 |
1.21μs |
0.281ns |
1.01ns |
0.117 |
0 |
0 |
738 B |
| #3072 |
RunOnMethodBegin |
netcoreapp3.1 |
1.04μs |
0.407ns |
1.52ns |
0.0104 |
0 |
0 |
768 B |
Benchmarks Report :snail:
Benchmarks for #3072 compared to master:
- 1 benchmarks are faster, with geometric mean 1.372
- 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 |
792μs |
4.32μs |
24.4μs |
0.391 |
0 |
0 |
3.18 KB |
| master |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
529μs |
3.02μs |
22.6μs |
0 |
0 |
0 |
2.58 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
net472 |
725μs |
624ns |
2.42μs |
0.363 |
0 |
0 |
3.18 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
471μs |
106ns |
396ns |
0 |
0 |
0 |
2.58 KB |
Benchmarks.Trace.AppSecBodyBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
AllCycleSimpleBody |
net472 |
205ns |
0.137ns |
0.493ns |
0.0676 |
0 |
0 |
425 B |
| master |
AllCycleSimpleBody |
netcoreapp3.1 |
234ns |
0.27ns |
1.05ns |
0.00594 |
0 |
0 |
424 B |
| master |
AllCycleMoreComplexBody |
net472 |
182ns |
0.151ns |
0.566ns |
0.0638 |
0 |
0 |
401 B |
| master |
AllCycleMoreComplexBody |
netcoreapp3.1 |
236ns |
0.314ns |
1.22ns |
0.00542 |
0 |
0 |
400 B |
| master |
BodyExtractorSimpleBody |
net472 |
259ns |
0.152ns |
0.549ns |
0.0574 |
0 |
0 |
361 B |
| master |
BodyExtractorSimpleBody |
netcoreapp3.1 |
216ns |
0.355ns |
1.37ns |
0.0038 |
0 |
0 |
272 B |
| master |
BodyExtractorMoreComplexBody |
net472 |
14.2μs |
9.8ns |
37.9ns |
1.21 |
0.0215 |
0 |
7.62 KB |
| master |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
12.5μs |
20.2ns |
72.8ns |
0.0933 |
0 |
0 |
6.75 KB |
| #3072 |
AllCycleSimpleBody |
net472 |
189ns |
0.352ns |
1.36ns |
0.0676 |
0 |
0 |
425 B |
| #3072 |
AllCycleSimpleBody |
netcoreapp3.1 |
235ns |
0.371ns |
1.44ns |
0.00583 |
0 |
0 |
424 B |
| #3072 |
AllCycleMoreComplexBody |
net472 |
182ns |
0.185ns |
0.691ns |
0.0638 |
0 |
0 |
401 B |
| #3072 |
AllCycleMoreComplexBody |
netcoreapp3.1 |
237ns |
0.293ns |
1.13ns |
0.00547 |
0 |
0 |
400 B |
| #3072 |
BodyExtractorSimpleBody |
net472 |
252ns |
0.219ns |
0.82ns |
0.0573 |
0 |
0 |
361 B |
| #3072 |
BodyExtractorSimpleBody |
netcoreapp3.1 |
230ns |
0.267ns |
0.964ns |
0.00369 |
0 |
0 |
272 B |
| #3072 |
BodyExtractorMoreComplexBody |
net472 |
14.2μs |
11.7ns |
45.2ns |
1.21 |
0.0214 |
0 |
7.62 KB |
| #3072 |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
12μs |
10.1ns |
37.9ns |
0.0902 |
0 |
0 |
6.75 KB |
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendRequest |
net472 |
0.0624ns |
0.0151ns |
0.0918ns |
0 |
0 |
0 |
0 b |
| master |
SendRequest |
netcoreapp3.1 |
189μs |
77.1ns |
267ns |
0.188 |
0 |
0 |
20.33 KB |
| #3072 |
SendRequest |
net472 |
0ns |
0ns |
0ns |
0 |
0 |
0 |
0 b |
| #3072 |
SendRequest |
netcoreapp3.1 |
180μs |
131ns |
507ns |
0.267 |
0 |
0 |
20.33 KB |
Benchmarks.Trace.DbCommandBenchmark - Faster :tada: Same allocations :heavy_check_mark:
Faster :tada: in #3072
| Benchmark |
base/diff |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 |
1.372 |
1,762.88 |
1,285.14 |
bimodal |
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteNonQuery |
net472 |
1.69μs |
9.36ns |
54.6ns |
0.126 |
0.000827 |
0 |
794 B |
| master |
ExecuteNonQuery |
netcoreapp3.1 |
1.77μs |
15.2ns |
152ns |
0.0112 |
0 |
0 |
824 B |
| #3072 |
ExecuteNonQuery |
net472 |
1.52μs |
0.376ns |
1.41ns |
0.126 |
0.000755 |
0 |
794 B |
| #3072 |
ExecuteNonQuery |
netcoreapp3.1 |
1.28μs |
0.506ns |
1.75ns |
0.011 |
0 |
0 |
824 B |
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
CallElasticsearch |
net472 |
2.17μs |
0.518ns |
1.87ns |
0.159 |
0 |
0 |
1 KB |
| master |
CallElasticsearch |
netcoreapp3.1 |
1.4μs |
0.68ns |
2.64ns |
0.0131 |
0 |
0 |
984 B |
| master |
CallElasticsearchAsync |
net472 |
2.28μs |
4.84ns |
18.8ns |
0.181 |
0 |
0 |
1.14 KB |
| master |
CallElasticsearchAsync |
netcoreapp3.1 |
1.43μs |
0.529ns |
1.98ns |
0.015 |
0 |
0 |
1.1 KB |
| #3072 |
CallElasticsearch |
net472 |
2.27μs |
1.38ns |
5.34ns |
0.159 |
0 |
0 |
1 KB |
| #3072 |
CallElasticsearch |
netcoreapp3.1 |
1.41μs |
0.457ns |
1.65ns |
0.0135 |
0 |
0 |
984 B |
| #3072 |
CallElasticsearchAsync |
net472 |
2.4μs |
0.388ns |
1.5ns |
0.18 |
0 |
0 |
1.14 KB |
| #3072 |
CallElasticsearchAsync |
netcoreapp3.1 |
1.5μs |
0.461ns |
1.72ns |
0.0148 |
0 |
0 |
1.1 KB |
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteAsync |
net472 |
2.48μs |
3.1ns |
12ns |
0.2 |
0 |
0 |
1.26 KB |
| master |
ExecuteAsync |
netcoreapp3.1 |
1.56μs |
1.66ns |
6.2ns |
0.0163 |
0 |
0 |
1.22 KB |
| #3072 |
ExecuteAsync |
net472 |
2.37μs |
2.87ns |
10.7ns |
0.199 |
0 |
0 |
1.26 KB |
| #3072 |
ExecuteAsync |
netcoreapp3.1 |
1.59μs |
1.54ns |
5.98ns |
0.0159 |
0 |
0 |
1.22 KB |
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendAsync |
net472 |
5.06μs |
6.98ns |
26.1ns |
0.392 |
0 |
0 |
2.48 KB |
| master |
SendAsync |
netcoreapp3.1 |
3.3μs |
4.05ns |
15.7ns |
0.031 |
0 |
0 |
2.36 KB |
| #3072 |
SendAsync |
net472 |
5.17μs |
3.12ns |
11.2ns |
0.393 |
0 |
0 |
2.48 KB |
| #3072 |
SendAsync |
netcoreapp3.1 |
3.2μs |
4.95ns |
19.2ns |
0.0308 |
0 |
0 |
2.36 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
2.83μs |
0.751ns |
2.81ns |
0.263 |
0 |
0 |
1.66 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
2.29μs |
0.476ns |
1.72ns |
0.0231 |
0 |
0 |
1.73 KB |
| #3072 |
EnrichedLog |
net472 |
2.88μs |
0.935ns |
3.5ns |
0.264 |
0 |
0 |
1.66 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
2.38μs |
0.759ns |
2.84ns |
0.023 |
0 |
0 |
1.73 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
149μs |
77.9ns |
302ns |
0.675 |
0.225 |
0 |
4.5 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
113μs |
107ns |
399ns |
0.0566 |
0 |
0 |
4.38 KB |
| #3072 |
EnrichedLog |
net472 |
149μs |
296ns |
1.15μs |
0.68 |
0.227 |
0 |
4.5 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
111μs |
85.6ns |
320ns |
0.0558 |
0 |
0 |
4.38 KB |
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
5.62μs |
8.3ns |
32.1ns |
0.545 |
0.00281 |
0 |
3.43 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.31μs |
5.04ns |
19.5ns |
0.0514 |
0 |
0 |
3.8 KB |
| #3072 |
EnrichedLog |
net472 |
5.48μs |
2.26ns |
8.77ns |
0.544 |
0.00272 |
0 |
3.43 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.22μs |
2.17ns |
8.4ns |
0.0503 |
0 |
0 |
3.8 KB |
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendReceive |
net472 |
1.99μs |
1.03ns |
4ns |
0.193 |
0 |
0 |
1.22 KB |
| master |
SendReceive |
netcoreapp3.1 |
1.73μs |
0.707ns |
2.65ns |
0.0165 |
0 |
0 |
1.21 KB |
| #3072 |
SendReceive |
net472 |
1.97μs |
0.626ns |
2.26ns |
0.194 |
0 |
0 |
1.22 KB |
| #3072 |
SendReceive |
netcoreapp3.1 |
1.66μs |
4.01ns |
15.5ns |
0.0164 |
0 |
0 |
1.21 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
4.66μs |
1.38ns |
5.33ns |
0.329 |
0 |
0 |
2.08 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.09μs |
2ns |
7.73ns |
0.0226 |
0 |
0 |
1.69 KB |
| #3072 |
EnrichedLog |
net472 |
4.75μs |
2.24ns |
8.4ns |
0.329 |
0 |
0 |
2.08 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.09μs |
1.41ns |
5.26ns |
0.0224 |
0 |
0 |
1.69 KB |
Benchmarks.Trace.SpanBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
StartFinishSpan |
net472 |
832ns |
0.252ns |
0.944ns |
0.104 |
0 |
0 |
658 B |
| master |
StartFinishSpan |
netcoreapp3.1 |
776ns |
1.78ns |
6.88ns |
0.00885 |
0 |
0 |
648 B |
| master |
StartFinishScope |
net472 |
1.01μs |
0.27ns |
1.05ns |
0.117 |
0 |
0 |
738 B |
| master |
StartFinishScope |
netcoreapp3.1 |
930ns |
0.337ns |
1.26ns |
0.0102 |
0 |
0 |
768 B |
| #3072 |
StartFinishSpan |
net472 |
863ns |
0.706ns |
2.74ns |
0.104 |
0 |
0 |
658 B |
| #3072 |
StartFinishSpan |
netcoreapp3.1 |
719ns |
0.353ns |
1.37ns |
0.00863 |
0 |
0 |
648 B |
| #3072 |
StartFinishScope |
net472 |
1.1μs |
0.461ns |
1.72ns |
0.117 |
0 |
0 |
738 B |
| #3072 |
StartFinishScope |
netcoreapp3.1 |
889ns |
0.28ns |
1.09ns |
0.0106 |
0 |
0 |
768 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
RunOnMethodBegin |
net472 |
1.22μs |
0.858ns |
3.32ns |
0.117 |
0 |
0 |
738 B |
| master |
RunOnMethodBegin |
netcoreapp3.1 |
1.01μs |
0.329ns |
1.19ns |
0.0102 |
0 |
0 |
768 B |
| #3072 |
RunOnMethodBegin |
net472 |
1.2μs |
2.44ns |
9.14ns |
0.117 |
0 |
0 |
738 B |
| #3072 |
RunOnMethodBegin |
netcoreapp3.1 |
1.01μs |
0.213ns |
0.769ns |
0.0102 |
0 |
0 |
768 B |
Benchmarks Report :snail:
Benchmarks for #3072 compared to master:
- 3 benchmarks are faster, with geometric mean 1.215
- 3 benchmarks are slower, with geometric mean 1.292
- All benchmarks have the same allocations
The following thresholds were used for comparing the benchmark speeds:
- Mann–Whitney U test with statistical test for significance of 5%
- Only results indicating a difference greater than 10% and 0.3 ns are considered.
Allocation changes below 0.5% are ignored.
Benchmark details
Benchmarks.Trace.AgentWriterBenchmark - Faster :tada: Same allocations :heavy_check_mark:
Faster :tada: in #3072
| Benchmark |
base/diff |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 |
1.142 |
527,143.46 |
461,778.30 |
|
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
WriteAndFlushEnrichedTraces |
net472 |
792μs |
4.32μs |
24.4μs |
0.391 |
0 |
0 |
3.18 KB |
| master |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
529μs |
3.02μs |
22.6μs |
0 |
0 |
0 |
2.58 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
net472 |
727μs |
427ns |
1.65μs |
0.361 |
0 |
0 |
3.18 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
462μs |
93.8ns |
363ns |
0 |
0 |
0 |
2.59 KB |
Benchmarks.Trace.AppSecBodyBenchmark - Faster :tada: Same allocations :heavy_check_mark:
Faster :tada: in #3072
| Benchmark |
base/diff |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.AppSecBodyBenchmark.AllCycleSimpleBody‑net472 |
1.133 |
204.95 |
180.88 |
|
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
AllCycleSimpleBody |
net472 |
205ns |
0.137ns |
0.493ns |
0.0676 |
0 |
0 |
425 B |
| master |
AllCycleSimpleBody |
netcoreapp3.1 |
234ns |
0.27ns |
1.05ns |
0.00594 |
0 |
0 |
424 B |
| master |
AllCycleMoreComplexBody |
net472 |
182ns |
0.151ns |
0.566ns |
0.0638 |
0 |
0 |
401 B |
| master |
AllCycleMoreComplexBody |
netcoreapp3.1 |
236ns |
0.314ns |
1.22ns |
0.00542 |
0 |
0 |
400 B |
| master |
BodyExtractorSimpleBody |
net472 |
259ns |
0.152ns |
0.549ns |
0.0574 |
0 |
0 |
361 B |
| master |
BodyExtractorSimpleBody |
netcoreapp3.1 |
216ns |
0.355ns |
1.37ns |
0.0038 |
0 |
0 |
272 B |
| master |
BodyExtractorMoreComplexBody |
net472 |
14.2μs |
9.8ns |
37.9ns |
1.21 |
0.0215 |
0 |
7.62 KB |
| master |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
12.5μs |
20.2ns |
72.8ns |
0.0933 |
0 |
0 |
6.75 KB |
| #3072 |
AllCycleSimpleBody |
net472 |
181ns |
0.132ns |
0.512ns |
0.0676 |
0 |
0 |
425 B |
| #3072 |
AllCycleSimpleBody |
netcoreapp3.1 |
236ns |
0.321ns |
1.24ns |
0.0059 |
0 |
0 |
424 B |
| #3072 |
AllCycleMoreComplexBody |
net472 |
183ns |
0.192ns |
0.745ns |
0.0637 |
0 |
0 |
401 B |
| #3072 |
AllCycleMoreComplexBody |
netcoreapp3.1 |
236ns |
0.313ns |
1.21ns |
0.00544 |
0 |
0 |
400 B |
| #3072 |
BodyExtractorSimpleBody |
net472 |
270ns |
0.274ns |
1.06ns |
0.0574 |
0 |
0 |
361 B |
| #3072 |
BodyExtractorSimpleBody |
netcoreapp3.1 |
225ns |
0.218ns |
0.843ns |
0.00374 |
0 |
0 |
272 B |
| #3072 |
BodyExtractorMoreComplexBody |
net472 |
14.4μs |
7.93ns |
30.7ns |
1.21 |
0.0217 |
0 |
7.62 KB |
| #3072 |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
12.6μs |
6.57ns |
23.7ns |
0.0883 |
0 |
0 |
6.75 KB |
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendRequest |
net472 |
0.0624ns |
0.0151ns |
0.0918ns |
0 |
0 |
0 |
0 b |
| master |
SendRequest |
netcoreapp3.1 |
189μs |
77.1ns |
267ns |
0.188 |
0 |
0 |
20.33 KB |
| #3072 |
SendRequest |
net472 |
0ns |
0ns |
0ns |
0 |
0 |
0 |
0 b |
| #3072 |
SendRequest |
netcoreapp3.1 |
179μs |
151ns |
585ns |
0.178 |
0 |
0 |
20.33 KB |
Benchmarks.Trace.DbCommandBenchmark - Faster :tada: Same allocations :heavy_check_mark:
Faster :tada: in #3072
| Benchmark |
base/diff |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.DbCommandBenchmark.ExecuteNonQuery‑netcoreapp3.1 |
1.388 |
1,762.88 |
1,270.42 |
bimodal |
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteNonQuery |
net472 |
1.69μs |
9.36ns |
54.6ns |
0.126 |
0.000827 |
0 |
794 B |
| master |
ExecuteNonQuery |
netcoreapp3.1 |
1.77μs |
15.2ns |
152ns |
0.0112 |
0 |
0 |
824 B |
| #3072 |
ExecuteNonQuery |
net472 |
1.51μs |
0.598ns |
2.32ns |
0.126 |
0.000754 |
0 |
794 B |
| #3072 |
ExecuteNonQuery |
netcoreapp3.1 |
1.27μs |
0.311ns |
1.16ns |
0.0108 |
0 |
0 |
824 B |
Benchmarks.Trace.ElasticsearchBenchmark - Slower :warning: Same allocations :heavy_check_mark:
Slower :warning: in #3072
| Benchmark |
diff/base |
Base Median (ns) |
Diff Median (ns) |
Modality |
| Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearchAsync‑netcoreapp3.1 |
1.419 |
1,426.49 |
2,023.60 |
several? |
| Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑netcoreapp3.1 |
1.329 |
1,396.51 |
1,856.40 |
|
| Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net472 |
1.143 |
2,170.17 |
2,481.33 |
|
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
CallElasticsearch |
net472 |
2.17μs |
0.518ns |
1.87ns |
0.159 |
0 |
0 |
1 KB |
| master |
CallElasticsearch |
netcoreapp3.1 |
1.4μs |
0.68ns |
2.64ns |
0.0131 |
0 |
0 |
984 B |
| master |
CallElasticsearchAsync |
net472 |
2.28μs |
4.84ns |
18.8ns |
0.181 |
0 |
0 |
1.14 KB |
| master |
CallElasticsearchAsync |
netcoreapp3.1 |
1.43μs |
0.529ns |
1.98ns |
0.015 |
0 |
0 |
1.1 KB |
| #3072 |
CallElasticsearch |
net472 |
2.48μs |
11.7ns |
48.4ns |
0.159 |
0 |
0 |
1 KB |
| #3072 |
CallElasticsearch |
netcoreapp3.1 |
1.87μs |
17.3ns |
173ns |
0.013 |
0 |
0 |
984 B |
| #3072 |
CallElasticsearchAsync |
net472 |
2.48μs |
13.2ns |
67.2ns |
0.18 |
0 |
0 |
1.14 KB |
| #3072 |
CallElasticsearchAsync |
netcoreapp3.1 |
2.02μs |
17.5ns |
174ns |
0.0148 |
0 |
0 |
1.1 KB |
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteAsync |
net472 |
2.48μs |
3.1ns |
12ns |
0.2 |
0 |
0 |
1.26 KB |
| master |
ExecuteAsync |
netcoreapp3.1 |
1.56μs |
1.66ns |
6.2ns |
0.0163 |
0 |
0 |
1.22 KB |
| #3072 |
ExecuteAsync |
net472 |
2.43μs |
6.66ns |
24.9ns |
0.2 |
0 |
0 |
1.26 KB |
| #3072 |
ExecuteAsync |
netcoreapp3.1 |
1.62μs |
0.561ns |
1.94ns |
0.0165 |
0 |
0 |
1.22 KB |
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendAsync |
net472 |
5.06μs |
6.98ns |
26.1ns |
0.392 |
0 |
0 |
2.48 KB |
| master |
SendAsync |
netcoreapp3.1 |
3.3μs |
4.05ns |
15.7ns |
0.031 |
0 |
0 |
2.36 KB |
| #3072 |
SendAsync |
net472 |
5.09μs |
3.48ns |
13.5ns |
0.392 |
0 |
0 |
2.48 KB |
| #3072 |
SendAsync |
netcoreapp3.1 |
3.23μs |
6.3ns |
24.4ns |
0.032 |
0 |
0 |
2.36 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
2.83μs |
0.751ns |
2.81ns |
0.263 |
0 |
0 |
1.66 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
2.29μs |
0.476ns |
1.72ns |
0.0231 |
0 |
0 |
1.73 KB |
| #3072 |
EnrichedLog |
net472 |
2.82μs |
1.22ns |
4.72ns |
0.263 |
0 |
0 |
1.66 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
2.35μs |
0.631ns |
2.28ns |
0.0235 |
0 |
0 |
1.73 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
149μs |
77.9ns |
302ns |
0.675 |
0.225 |
0 |
4.5 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
113μs |
107ns |
399ns |
0.0566 |
0 |
0 |
4.38 KB |
| #3072 |
EnrichedLog |
net472 |
148μs |
187ns |
725ns |
0.671 |
0.224 |
0 |
4.5 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
115μs |
168ns |
629ns |
0.0573 |
0 |
0 |
4.38 KB |
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
5.62μs |
8.3ns |
32.1ns |
0.545 |
0.00281 |
0 |
3.43 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.31μs |
5.04ns |
19.5ns |
0.0514 |
0 |
0 |
3.8 KB |
| #3072 |
EnrichedLog |
net472 |
5.45μs |
3.18ns |
11.9ns |
0.543 |
0.00272 |
0 |
3.43 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.19μs |
2.57ns |
9.6ns |
0.0522 |
0 |
0 |
3.8 KB |
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendReceive |
net472 |
1.99μs |
1.03ns |
4ns |
0.193 |
0 |
0 |
1.22 KB |
| master |
SendReceive |
netcoreapp3.1 |
1.73μs |
0.707ns |
2.65ns |
0.0165 |
0 |
0 |
1.21 KB |
| #3072 |
SendReceive |
net472 |
2.04μs |
1.37ns |
5.31ns |
0.193 |
0 |
0 |
1.22 KB |
| #3072 |
SendReceive |
netcoreapp3.1 |
1.67μs |
0.352ns |
1.27ns |
0.0167 |
0 |
0 |
1.21 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
4.66μs |
1.38ns |
5.33ns |
0.329 |
0 |
0 |
2.08 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.09μs |
2ns |
7.73ns |
0.0226 |
0 |
0 |
1.69 KB |
| #3072 |
EnrichedLog |
net472 |
4.96μs |
13.5ns |
50.6ns |
0.328 |
0 |
0 |
2.08 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.28μs |
17.2ns |
84.3ns |
0.0216 |
0 |
0 |
1.69 KB |
Benchmarks.Trace.SpanBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
StartFinishSpan |
net472 |
832ns |
0.252ns |
0.944ns |
0.104 |
0 |
0 |
658 B |
| master |
StartFinishSpan |
netcoreapp3.1 |
776ns |
1.78ns |
6.88ns |
0.00885 |
0 |
0 |
648 B |
| master |
StartFinishScope |
net472 |
1.01μs |
0.27ns |
1.05ns |
0.117 |
0 |
0 |
738 B |
| master |
StartFinishScope |
netcoreapp3.1 |
930ns |
0.337ns |
1.26ns |
0.0102 |
0 |
0 |
768 B |
| #3072 |
StartFinishSpan |
net472 |
822ns |
0.373ns |
1.35ns |
0.104 |
0 |
0 |
658 B |
| #3072 |
StartFinishSpan |
netcoreapp3.1 |
710ns |
0.196ns |
0.759ns |
0.00888 |
0 |
0 |
648 B |
| #3072 |
StartFinishScope |
net472 |
1.06μs |
0.278ns |
1.08ns |
0.117 |
0 |
0 |
738 B |
| #3072 |
StartFinishScope |
netcoreapp3.1 |
965ns |
0.53ns |
2.05ns |
0.0101 |
0 |
0 |
768 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
RunOnMethodBegin |
net472 |
1.22μs |
0.858ns |
3.32ns |
0.117 |
0 |
0 |
738 B |
| master |
RunOnMethodBegin |
netcoreapp3.1 |
1.01μs |
0.329ns |
1.19ns |
0.0102 |
0 |
0 |
768 B |
| #3072 |
RunOnMethodBegin |
net472 |
1.27μs |
0.478ns |
1.85ns |
0.117 |
0 |
0 |
738 B |
| #3072 |
RunOnMethodBegin |
netcoreapp3.1 |
1.04μs |
2.36ns |
9.15ns |
0.0104 |
0 |
0 |
768 B |
Benchmarks Report :snail:
Benchmarks for #3072 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 |
715μs |
523ns |
1.96μs |
0.357 |
0 |
0 |
3.18 KB |
| master |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
467μs |
190ns |
735ns |
0 |
0 |
0 |
2.59 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
net472 |
709μs |
387ns |
1.45μs |
0.357 |
0 |
0 |
3.18 KB |
| #3072 |
WriteAndFlushEnrichedTraces |
netcoreapp3.1 |
461μs |
195ns |
757ns |
0 |
0 |
0 |
2.58 KB |
Benchmarks.Trace.AppSecBodyBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
AllCycleSimpleBody |
net472 |
182ns |
0.15ns |
0.56ns |
0.0676 |
9.26E-05 |
0 |
425 B |
| master |
AllCycleSimpleBody |
netcoreapp3.1 |
238ns |
0.258ns |
0.999ns |
0.00578 |
0 |
0 |
424 B |
| master |
AllCycleMoreComplexBody |
net472 |
183ns |
0.14ns |
0.54ns |
0.0637 |
0 |
0 |
401 B |
| master |
AllCycleMoreComplexBody |
netcoreapp3.1 |
237ns |
0.328ns |
1.27ns |
0.00544 |
0 |
0 |
400 B |
| master |
BodyExtractorSimpleBody |
net472 |
257ns |
0.349ns |
1.35ns |
0.0573 |
0 |
0 |
361 B |
| master |
BodyExtractorSimpleBody |
netcoreapp3.1 |
218ns |
0.212ns |
0.821ns |
0.00373 |
0 |
0 |
272 B |
| master |
BodyExtractorMoreComplexBody |
net472 |
14.7μs |
11.2ns |
42.1ns |
1.21 |
0.0147 |
0 |
7.62 KB |
| master |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
12.1μs |
15.1ns |
56.4ns |
0.0906 |
0 |
0 |
6.75 KB |
| #3072 |
AllCycleSimpleBody |
net472 |
185ns |
0.144ns |
0.539ns |
0.0676 |
9.23E-05 |
0 |
425 B |
| #3072 |
AllCycleSimpleBody |
netcoreapp3.1 |
237ns |
0.113ns |
0.407ns |
0.00581 |
0 |
0 |
424 B |
| #3072 |
AllCycleMoreComplexBody |
net472 |
181ns |
0.153ns |
0.573ns |
0.0637 |
0 |
0 |
401 B |
| #3072 |
AllCycleMoreComplexBody |
netcoreapp3.1 |
237ns |
0.227ns |
0.88ns |
0.0055 |
0 |
0 |
400 B |
| #3072 |
BodyExtractorSimpleBody |
net472 |
283ns |
0.528ns |
2.05ns |
0.0573 |
0 |
0 |
361 B |
| #3072 |
BodyExtractorSimpleBody |
netcoreapp3.1 |
219ns |
0.124ns |
0.447ns |
0.00376 |
0 |
0 |
272 B |
| #3072 |
BodyExtractorMoreComplexBody |
net472 |
14.4μs |
10.5ns |
40.7ns |
1.21 |
0.0215 |
0 |
7.62 KB |
| #3072 |
BodyExtractorMoreComplexBody |
netcoreapp3.1 |
11.7μs |
12.1ns |
47ns |
0.0938 |
0 |
0 |
6.75 KB |
Benchmarks.Trace.AspNetCoreBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendRequest |
net472 |
0ns |
0ns |
0ns |
0 |
0 |
0 |
0 b |
| master |
SendRequest |
netcoreapp3.1 |
180μs |
160ns |
618ns |
0.271 |
0 |
0 |
20.58 KB |
| #3072 |
SendRequest |
net472 |
0ns |
0ns |
0ns |
0 |
0 |
0 |
0 b |
| #3072 |
SendRequest |
netcoreapp3.1 |
180μs |
277ns |
1.07μs |
0.268 |
0 |
0 |
20.58 KB |
Benchmarks.Trace.DbCommandBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteNonQuery |
net472 |
1.85μs |
0.961ns |
3.72ns |
0.15 |
0.00093 |
0 |
947 B |
| master |
ExecuteNonQuery |
netcoreapp3.1 |
1.4μs |
0.394ns |
1.42ns |
0.0127 |
0 |
0 |
936 B |
| #3072 |
ExecuteNonQuery |
net472 |
1.86μs |
0.89ns |
3.45ns |
0.15 |
0.000936 |
0 |
947 B |
| #3072 |
ExecuteNonQuery |
netcoreapp3.1 |
1.39μs |
0.538ns |
2.08ns |
0.0125 |
0 |
0 |
936 B |
Benchmarks.Trace.ElasticsearchBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
CallElasticsearch |
net472 |
2.6μs |
1.4ns |
5.41ns |
0.182 |
0 |
0 |
1.16 KB |
| master |
CallElasticsearch |
netcoreapp3.1 |
1.52μs |
0.975ns |
3.65ns |
0.0145 |
0 |
0 |
1.1 KB |
| master |
CallElasticsearchAsync |
net472 |
2.67μs |
1.83ns |
6.86ns |
0.204 |
0 |
0 |
1.29 KB |
| master |
CallElasticsearchAsync |
netcoreapp3.1 |
1.63μs |
1.22ns |
4.72ns |
0.0163 |
0 |
0 |
1.22 KB |
| #3072 |
CallElasticsearch |
net472 |
2.63μs |
1.91ns |
7.41ns |
0.184 |
0 |
0 |
1.16 KB |
| #3072 |
CallElasticsearch |
netcoreapp3.1 |
1.52μs |
1.09ns |
4.21ns |
0.0152 |
0 |
0 |
1.1 KB |
| #3072 |
CallElasticsearchAsync |
net472 |
2.69μs |
1.93ns |
7.22ns |
0.205 |
0 |
0 |
1.29 KB |
| #3072 |
CallElasticsearchAsync |
netcoreapp3.1 |
1.61μs |
0.598ns |
2.32ns |
0.0168 |
0 |
0 |
1.22 KB |
Benchmarks.Trace.GraphQLBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
ExecuteAsync |
net472 |
2.77μs |
2.43ns |
9.41ns |
0.226 |
0 |
0 |
1.42 KB |
| master |
ExecuteAsync |
netcoreapp3.1 |
1.77μs |
4.66ns |
18ns |
0.0186 |
0 |
0 |
1.34 KB |
| #3072 |
ExecuteAsync |
net472 |
2.63μs |
3.11ns |
11.6ns |
0.224 |
0 |
0 |
1.42 KB |
| #3072 |
ExecuteAsync |
netcoreapp3.1 |
1.72μs |
3.11ns |
11.2ns |
0.0184 |
0 |
0 |
1.34 KB |
Benchmarks.Trace.HttpClientBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendAsync |
net472 |
5.7μs |
12.1ns |
46.8ns |
0.439 |
0 |
0 |
2.77 KB |
| master |
SendAsync |
netcoreapp3.1 |
3.68μs |
8.37ns |
32.4ns |
0.0357 |
0 |
0 |
2.6 KB |
| #3072 |
SendAsync |
net472 |
5.69μs |
13.5ns |
52.3ns |
0.437 |
0 |
0 |
2.77 KB |
| #3072 |
SendAsync |
netcoreapp3.1 |
3.65μs |
9.34ns |
36.2ns |
0.0342 |
0 |
0 |
2.6 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
3.22μs |
3.61ns |
14ns |
0.287 |
0 |
0 |
1.81 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
2.58μs |
1.52ns |
5.67ns |
0.0244 |
0 |
0 |
1.85 KB |
| #3072 |
EnrichedLog |
net472 |
3.24μs |
4ns |
15.5ns |
0.287 |
0 |
0 |
1.81 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
2.62μs |
1.11ns |
4.28ns |
0.0248 |
0 |
0 |
1.85 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
150μs |
153ns |
594ns |
0.67 |
0.223 |
0 |
4.66 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
115μs |
86.6ns |
324ns |
0.0576 |
0 |
0 |
4.49 KB |
| #3072 |
EnrichedLog |
net472 |
152μs |
148ns |
574ns |
0.688 |
0.229 |
0 |
4.66 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
118μs |
283ns |
1.09μs |
0 |
0 |
0 |
4.49 KB |
Benchmarks.Trace.NLogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
5.69μs |
10.9ns |
42.3ns |
0.567 |
0.00289 |
0 |
3.59 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.24μs |
7.25ns |
27.1ns |
0.0549 |
0 |
0 |
3.91 KB |
| #3072 |
EnrichedLog |
net472 |
5.84μs |
8.98ns |
34.8ns |
0.568 |
0.00294 |
0 |
3.59 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.48μs |
9.88ns |
38.3ns |
0.0537 |
0 |
0 |
3.91 KB |
Benchmarks.Trace.RedisBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
SendReceive |
net472 |
2.24μs |
2.66ns |
9.58ns |
0.218 |
0 |
0 |
1.37 KB |
| master |
SendReceive |
netcoreapp3.1 |
1.82μs |
0.781ns |
3.03ns |
0.0183 |
0 |
0 |
1.32 KB |
| #3072 |
SendReceive |
net472 |
2.21μs |
3.7ns |
14.3ns |
0.218 |
0 |
0 |
1.37 KB |
| #3072 |
SendReceive |
netcoreapp3.1 |
1.81μs |
3.12ns |
12.1ns |
0.0178 |
0 |
0 |
1.32 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
EnrichedLog |
net472 |
5.03μs |
2.22ns |
8.59ns |
0.354 |
0 |
0 |
2.23 KB |
| master |
EnrichedLog |
netcoreapp3.1 |
4.29μs |
3.38ns |
12.2ns |
0.0235 |
0 |
0 |
1.8 KB |
| #3072 |
EnrichedLog |
net472 |
4.94μs |
3.16ns |
12.2ns |
0.352 |
0 |
0 |
2.23 KB |
| #3072 |
EnrichedLog |
netcoreapp3.1 |
4.25μs |
2.04ns |
7.37ns |
0.0234 |
0 |
0 |
1.8 KB |
Benchmarks.Trace.SpanBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
StartFinishSpan |
net472 |
1.22μs |
0.61ns |
2.36ns |
0.129 |
0 |
0 |
810 B |
| master |
StartFinishSpan |
netcoreapp3.1 |
921ns |
0.215ns |
0.832ns |
0.0102 |
0 |
0 |
760 B |
| master |
StartFinishScope |
net472 |
1.43μs |
1.01ns |
3.9ns |
0.141 |
0 |
0 |
891 B |
| master |
StartFinishScope |
netcoreapp3.1 |
1.13μs |
0.479ns |
1.79ns |
0.0119 |
0 |
0 |
880 B |
| #3072 |
StartFinishSpan |
net472 |
1.18μs |
0.673ns |
2.33ns |
0.129 |
0.00059 |
0 |
810 B |
| #3072 |
StartFinishSpan |
netcoreapp3.1 |
975ns |
0.617ns |
2.39ns |
0.0103 |
0 |
0 |
760 B |
| #3072 |
StartFinishScope |
net472 |
1.43μs |
1.76ns |
6.8ns |
0.141 |
0 |
0 |
891 B |
| #3072 |
StartFinishScope |
netcoreapp3.1 |
1.11μs |
0.41ns |
1.54ns |
0.012 |
0 |
0 |
880 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed :heavy_check_mark: Same allocations :heavy_check_mark:
Raw results
| Branch |
Method |
Toolchain |
Mean |
StdError |
StdDev |
Gen 0 |
Gen 1 |
Gen 2 |
Allocated |
| master |
RunOnMethodBegin |
net472 |
1.47μs |
0.994ns |
3.85ns |
0.141 |
0 |
0 |
891 B |
| master |
RunOnMethodBegin |
netcoreapp3.1 |
1.18μs |
0.512ns |
1.98ns |
0.0118 |
0 |
0 |
880 B |
| #3072 |
RunOnMethodBegin |
net472 |
1.52μs |
2.59ns |
10ns |
0.141 |
0 |
0 |
891 B |
| #3072 |
RunOnMethodBegin |
netcoreapp3.1 |
1.12μs |
1.12ns |
4.34ns |
0.0117 |
0 |
0 |
880 B |
I ended up updating the RabbitMQ samples in my interface integration PR: https://github.com/DataDog/dd-trace-dotnet/pull/3256
I can rebase this PR once that is merged