BenchmarkDotNet icon indicating copy to clipboard operation
BenchmarkDotNet copied to clipboard

Powerful .NET library for benchmarking

Results 223 BenchmarkDotNet issues
Sort by recently updated
recently updated
newest added

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...

Area:Diagnosers

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...

Area:Diagnosers

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...

enhancement
Area:Toolchains

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)...