-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stop intalling all the .NET SDK versions in benchmark agents #6612
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks a lot :)
Datadog ReportBranch report: ❌ 2 Failed (0 Known Flaky), 242124 Passed, 2061 Skipped, 19h 9m 2.34s Total Time ❌ Failed Tests (2)
|
Benchmarks Report for tracer 🐌Benchmarks for #6612 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Faster 🎉 Same allocations ✔️
|
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.ElasticsearchBenchmark.CallElasticsearch‑net6.0 | 1.133 | 1,299.02 | 1,146.98 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | CallElasticsearch |
net6.0 | 1.3μs | 0.614ns | 2.3ns | 0.0137 | 0 | 0 | 976 B |
master | CallElasticsearch |
netcoreapp3.1 | 1.5μs | 0.968ns | 3.75ns | 0.0128 | 0 | 0 | 976 B |
master | CallElasticsearch |
net472 | 2.53μs | 1.18ns | 4.41ns | 0.158 | 0 | 0 | 995 B |
master | CallElasticsearchAsync |
net6.0 | 1.29μs | 0.82ns | 2.96ns | 0.0129 | 0 | 0 | 952 B |
master | CallElasticsearchAsync |
netcoreapp3.1 | 1.6μs | 0.834ns | 3.12ns | 0.0136 | 0 | 0 | 1.02 KB |
master | CallElasticsearchAsync |
net472 | 2.71μs | 1.11ns | 4.16ns | 0.166 | 0 | 0 | 1.05 KB |
#6612 | CallElasticsearch |
net6.0 | 1.15μs | 0.868ns | 3.25ns | 0.0138 | 0 | 0 | 976 B |
#6612 | CallElasticsearch |
netcoreapp3.1 | 1.57μs | 1.04ns | 3.9ns | 0.0133 | 0 | 0 | 976 B |
#6612 | CallElasticsearch |
net472 | 2.55μs | 1.15ns | 4.47ns | 0.158 | 0 | 0 | 995 B |
#6612 | CallElasticsearchAsync |
net6.0 | 1.24μs | 0.42ns | 1.57ns | 0.013 | 0 | 0 | 952 B |
#6612 | CallElasticsearchAsync |
netcoreapp3.1 | 1.69μs | 1.59ns | 5.95ns | 0.0136 | 0 | 0 | 1.02 KB |
#6612 | CallElasticsearchAsync |
net472 | 2.62μs | 0.953ns | 3.57ns | 0.166 | 0 | 0 | 1.05 KB |
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | ExecuteAsync |
net6.0 | 1.28μs | 0.464ns | 1.74ns | 0.0133 | 0 | 0 | 952 B |
master | ExecuteAsync |
netcoreapp3.1 | 1.65μs | 1.13ns | 4.38ns | 0.013 | 0 | 0 | 952 B |
master | ExecuteAsync |
net472 | 1.88μs | 0.642ns | 2.49ns | 0.145 | 0 | 0 | 915 B |
#6612 | ExecuteAsync |
net6.0 | 1.3μs | 0.651ns | 2.35ns | 0.0137 | 0 | 0 | 952 B |
#6612 | ExecuteAsync |
netcoreapp3.1 | 1.64μs | 0.647ns | 2.33ns | 0.0131 | 0 | 0 | 952 B |
#6612 | ExecuteAsync |
net472 | 1.81μs | 0.455ns | 1.76ns | 0.145 | 0 | 0 | 915 B |
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendAsync |
net6.0 | 4.45μs | 1.6ns | 6.2ns | 0.0311 | 0 | 0 | 2.31 KB |
master | SendAsync |
netcoreapp3.1 | 5.25μs | 3.75ns | 13ns | 0.0384 | 0 | 0 | 2.85 KB |
master | SendAsync |
net472 | 7.42μs | 1.81ns | 7.02ns | 0.493 | 0 | 0 | 3.12 KB |
#6612 | SendAsync |
net6.0 | 4.47μs | 1.81ns | 6.79ns | 0.0314 | 0 | 0 | 2.31 KB |
#6612 | SendAsync |
netcoreapp3.1 | 5.29μs | 2.01ns | 7.23ns | 0.0371 | 0 | 0 | 2.85 KB |
#6612 | SendAsync |
net472 | 7.41μs | 1.44ns | 5.59ns | 0.496 | 0 | 0 | 3.12 KB |
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 1.53μs | 0.66ns | 2.47ns | 0.0229 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
netcoreapp3.1 | 2.26μs | 2.07ns | 7.48ns | 0.0225 | 0 | 0 | 1.64 KB |
master | EnrichedLog |
net472 | 2.64μs | 1.6ns | 6.2ns | 0.249 | 0 | 0 | 1.57 KB |
#6612 | EnrichedLog |
net6.0 | 1.45μs | 1.02ns | 3.93ns | 0.0233 | 0 | 0 | 1.64 KB |
#6612 | EnrichedLog |
netcoreapp3.1 | 2.31μs | 0.925ns | 3.46ns | 0.0218 | 0 | 0 | 1.64 KB |
#6612 | EnrichedLog |
net472 | 2.61μs | 1.3ns | 5.02ns | 0.249 | 0 | 0 | 1.57 KB |
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 116μs | 113ns | 437ns | 0.058 | 0 | 0 | 4.28 KB |
master | EnrichedLog |
netcoreapp3.1 | 120μs | 257ns | 994ns | 0.0603 | 0 | 0 | 4.28 KB |
master | EnrichedLog |
net472 | 150μs | 211ns | 819ns | 0.674 | 0.225 | 0 | 4.46 KB |
#6612 | EnrichedLog |
net6.0 | 113μs | 160ns | 618ns | 0.0564 | 0 | 0 | 4.28 KB |
#6612 | EnrichedLog |
netcoreapp3.1 | 115μs | 134ns | 519ns | 0.0576 | 0 | 0 | 4.28 KB |
#6612 | EnrichedLog |
net472 | 150μs | 136ns | 527ns | 0.677 | 0.226 | 0 | 4.46 KB |
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 3.01μs | 1.42ns | 5.49ns | 0.0302 | 0 | 0 | 2.2 KB |
master | EnrichedLog |
netcoreapp3.1 | 4.43μs | 1.5ns | 5.62ns | 0.0289 | 0 | 0 | 2.2 KB |
master | EnrichedLog |
net472 | 4.86μs | 1.3ns | 5.02ns | 0.319 | 0 | 0 | 2.02 KB |
#6612 | EnrichedLog |
net6.0 | 3.06μs | 0.645ns | 2.41ns | 0.0306 | 0 | 0 | 2.2 KB |
#6612 | EnrichedLog |
netcoreapp3.1 | 4.13μs | 0.654ns | 2.45ns | 0.0289 | 0 | 0 | 2.2 KB |
#6612 | EnrichedLog |
net472 | 4.88μs | 0.974ns | 3.65ns | 0.32 | 0 | 0 | 2.02 KB |
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | SendReceive |
net6.0 | 1.33μs | 0.963ns | 3.73ns | 0.0161 | 0 | 0 | 1.14 KB |
master | SendReceive |
netcoreapp3.1 | 1.69μs | 0.587ns | 2.27ns | 0.0152 | 0 | 0 | 1.14 KB |
master | SendReceive |
net472 | 2.03μs | 0.608ns | 2.27ns | 0.183 | 0 | 0 | 1.16 KB |
#6612 | SendReceive |
net6.0 | 1.36μs | 0.551ns | 2.13ns | 0.0163 | 0 | 0 | 1.14 KB |
#6612 | SendReceive |
netcoreapp3.1 | 1.8μs | 0.909ns | 3.52ns | 0.0153 | 0 | 0 | 1.14 KB |
#6612 | SendReceive |
net472 | 2.14μs | 1.36ns | 5.25ns | 0.183 | 0 | 0 | 1.16 KB |
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EnrichedLog |
net6.0 | 2.9μs | 1.35ns | 5.07ns | 0.0216 | 0 | 0 | 1.6 KB |
master | EnrichedLog |
netcoreapp3.1 | 3.89μs | 1.76ns | 6.59ns | 0.0215 | 0 | 0 | 1.65 KB |
master | EnrichedLog |
net472 | 4.49μs | 1.74ns | 6.52ns | 0.323 | 0 | 0 | 2.04 KB |
#6612 | EnrichedLog |
net6.0 | 2.78μs | 1.29ns | 4.99ns | 0.0222 | 0 | 0 | 1.6 KB |
#6612 | EnrichedLog |
netcoreapp3.1 | 3.87μs | 9.84ns | 38.1ns | 0.021 | 0 | 0 | 1.65 KB |
#6612 | EnrichedLog |
net472 | 4.38μs | 2.46ns | 9.51ns | 0.324 | 0 | 0 | 2.04 KB |
Benchmarks.Trace.SpanBenchmark - Slower ⚠️ Same allocations ✔️
Slower ⚠️ in #6612
Benchmark
diff/base
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0
1.189
481.51
572.61
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑net6.0 | 1.189 | 481.51 | 572.61 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 402ns | 0.695ns | 2.6ns | 0.00802 | 0 | 0 | 576 B |
master | StartFinishSpan |
netcoreapp3.1 | 557ns | 0.836ns | 3.24ns | 0.00777 | 0 | 0 | 576 B |
master | StartFinishSpan |
net472 | 662ns | 1.28ns | 4.95ns | 0.0915 | 0 | 0 | 578 B |
master | StartFinishScope |
net6.0 | 482ns | 0.804ns | 3.11ns | 0.00985 | 0 | 0 | 696 B |
master | StartFinishScope |
netcoreapp3.1 | 716ns | 1.08ns | 4.19ns | 0.00961 | 0 | 0 | 696 B |
master | StartFinishScope |
net472 | 836ns | 2.03ns | 7.87ns | 0.105 | 0 | 0 | 658 B |
#6612 | StartFinishSpan |
net6.0 | 408ns | 0.21ns | 0.813ns | 0.00816 | 0 | 0 | 576 B |
#6612 | StartFinishSpan |
netcoreapp3.1 | 557ns | 0.628ns | 2.43ns | 0.00782 | 0 | 0 | 576 B |
#6612 | StartFinishSpan |
net472 | 605ns | 0.422ns | 1.63ns | 0.0916 | 0 | 0 | 578 B |
#6612 | StartFinishScope |
net6.0 | 573ns | 0.193ns | 0.749ns | 0.00974 | 0 | 0 | 696 B |
#6612 | StartFinishScope |
netcoreapp3.1 | 719ns | 0.31ns | 1.2ns | 0.00937 | 0 | 0 | 696 B |
#6612 | StartFinishScope |
net472 | 852ns | 0.986ns | 3.82ns | 0.104 | 0 | 0 | 658 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | RunOnMethodBegin |
net6.0 | 660ns | 1.17ns | 4.54ns | 0.00963 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 893ns | 1.34ns | 5.2ns | 0.00952 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
net472 | 1.03μs | 2.37ns | 9.17ns | 0.104 | 0 | 0 | 658 B |
#6612 | RunOnMethodBegin |
net6.0 | 719ns | 0.381ns | 1.38ns | 0.00969 | 0 | 0 | 696 B |
#6612 | RunOnMethodBegin |
netcoreapp3.1 | 900ns | 0.679ns | 2.63ns | 0.00937 | 0 | 0 | 696 B |
#6612 | RunOnMethodBegin |
net472 | 1.12μs | 0.566ns | 2.19ns | 0.105 | 0 | 0 | 658 B |
Summary of changes
Only install the SDK version specified in the global.json
Reason for change
Currently the benchmark agents are installing every patch release of every TFM we ever test against. That means they slowly run out of space. We're only (currently) running benchmarks against EOL TFMs anyway, so there aren't new versions of these to test against anyway, so this is purely just a maintenance burden.
Implementation details
Use
install-latest-dotnet-sdk.yml
instead ofinstall-dotnet-sdks.yml
Test coverage
Meh, I'm sure it'll be fine.
Other details
Yeah "latest" is not a great description for the task but ah well 🙈