Table of Contents

BenchmarkDotNet v0.15.3

Highlights

Improvements:

  • Naot instruction set support for .NET 10+, migrate to ISA groupings in CPU summary #2828
  • Support benchmark filtering for TestAdapter #2662 #2788
  • Support non-primitive external types in ArgumentsSource #2820
  • Disable MSBuild parallel build via --nodeReuse:false #2693 #2814
  • Improve CPU detection #2747 #2749
  • Enable assembly signing for debug build #2774

Deprecations:

  • Deprecated WithNuget #2812

Bug fixes:

  • Fix InvalidOperationException in diagnosers #2758 #2805
  • Fix file detection in NativeMemoryProfiler #2794 #2795
  • Fix long file paths issue in EtwProfiler #2807 #2808
  • Fix log duplications in TestAdapter #2790
  • Fix x86 disassembler error for net462 #2792
  • Fix IsNetCore and IsNativeAOT for single-file apps without AOT #2799
  • Fix density plot generation in RPlotExporter for latest version of R #2809

Milestone details

In the v0.15.3 scope, 6 issues were resolved and 20 pull requests were merged. This release includes 23 commits by 9 contributors.

Resolved issues (6)

  • #2662 Unable to filter benchmarks with TestAdapter
  • #2693 Feature: Add extensibility to the DotnetCliCommand (assignee: @timcassell)
  • #2747 "Unknown processor" on Windows (assignee: @alastairlundy)
  • #2758 [Bug] InvalidOperationException thrown on some conditions when using BenchmarkDotNetDiagnosers (assignee: @filzrev)
  • #2794 NativeMemoryProfiler no longer works as of 0.15 (assignee: @mriehm)
  • #2807 EtwProfiler traces fail to merge if path approaches 260 chars (assignee: @mriehm)

Merged pull requests (20)

  • #2749 Fix "Unknown Processor" on Windows if WMIC is not present (by @alastairlundy)
  • #2774 chore: Enable assembly signing for debug build (by @filzrev)
  • #2788 feat: Add filter support for TestAdapter (by @filzrev)
  • #2790 fix: Console logs are outputted twice when using TestAdapter (by @filzrev)
  • #2792 chore: Fix x86 disassembler error for net462 (by @filzrev)
  • #2795 Lowercase programName in NativeMemoryLogParser.cs (by @mriehm)
  • #2796 chore: Replace StyleCop.Analyzer library to unstable version (by @filzrev)
  • #2797 chore: Add GitHub Actions workflow that run selected tests (by @filzrev)
  • #2799 Fix IsNetCore and IsNativeAOT for single-file apps without AOT (by @timcassell)
  • #2802 Fix comment in package props about GenerateProgramFile (by @Youssef1313)
  • #2805 deps: Update BenchmarkDotNetDiagnosers package version (by @filzrev)
  • #2808 Fix EtwProfiler for file paths slightly under 260 chars (by @mriehm)
  • #2809 Fix density plot error by using correct bandwidth string in BuildPlots.R (by @AtomChen0425)
  • #2812 Deprecate WithNuget (by @timcassell)
  • #2813 chore: Fix flaky AllocationQuantumIsNotAnIssueForNetCore21Plus tests on macos (by @filzrev)
  • #2814 Use --nodeReuse:false (by @timcassell)
  • #2816 chore: Ensure EventProcessor::OnEndValidationStage is called when critical validation error contained (by @filzrev)
  • #2817 chore: Suppress XmlException thrown internally on AppConfigGenerator::Generate method (by @filzrev)
  • #2820 Fix ArgumentsSource on external types not working if the argument type is not primitive (by @JimmyCushnie)
  • #2828 Update the naot instruction set support for .NET 10+ (by @tannergooding)

Commits (23)

Contributors (9)

Thank you very much!

Additional details

Date: September 17, 2025

Milestone: v0.15.3 (List of commits)

NuGet Packages: