BenchmarkDotNet
BenchmarkDotNet copied to clipboard
Powerful .NET library for benchmarking
This doesn't fix the zero-alloc measurement, but it does fix a bug from the threading diagnoser interfering with the results. The other changes give us the highest confidence that any...
I'm trying to validate that code doesn't allocate anything and I have some unit tests asserting on the summary provided from running benchmarks. However, I'm seeing a non-deterministic amount of...
current detection fails to differentiate between PublishSingleFile and PublishAot because they both return null from Assembly.Location. @adamsitnik @jkotas is there any existing app model API available to make this detection...
During migration of the benchmarks to BDN here : https://github.com/dotnet/corefxlab/pull/2333 I want that one of argument would depends on the value mapped to current `Param`. For example to always to...
This adds a new project called BenchmarkDotNet.Exporters.Plotting. Currently just supports Bar Plots with configurable options for Width, Height and whether to RotateLabels (for large bar labels defaults to true). Example...
Fixes #2425 Builds using dotnet sdk 8 or newer use `ArtifactsPath` to enable safe parallel builds. Builds using older dotnet sdks and wasm and monoaotllvm build sequentially. It would be...
Similar approach to [#2549](https://github.com/dotnet/BenchmarkDotNet/pull/2549#issuecomment-2028807304) for simplifying `DotTraceDiagnoser`. Also deduped some code by creating a shared project (using `` to avoid another package). Pulled this code into `JetBrains` folder so that...
I wrote a simple benchmark, with NativeAOT enabled: ```csharp using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Jobs; using BenchmarkDotNet.Running; BenchmarkRunner.Run(); [SimpleJob(RuntimeMoniker.NativeAot80)] public class MyBench { [Benchmark] public void Bench() { } } ``` But...
When running benchmark on my Raptor Lake processor, I find the time of each iteration shifts between two values if I switch the console window to background. This is probably...
I've created benchmark config by using `ManualConfig` derived class. And using this config with `[Config(typeof(CustomConfig))]` attribute. When running benchmarks. It seems config is always merged with `DefaultConfig.Instance` by [BenchmarkConverter::GetFullTypeConfig]( https://github.com/dotnet/BenchmarkDotNet/blob/55ce92d7fa2aa26e463350e65b7cf6c0c2c78d97/src/BenchmarkDotNet/Running/BenchmarkConverter.cs#L88-L94)...