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
andIsNativeAOT
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 usingBenchmarkDotNetDiagnosers
(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
andIsNativeAOT
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)
- ffce52 Set next BenchmarkDotNet version: 0.15.3 (by @AndreyAkinshin)
- 7d4210 Fix "Unknown Processor" on Windows if WMIC is not present (#2749) (by @alastairlundy)
- f8390f chore: enable assembly signing for debug build (#2774) (by @filzrev)
- 799ecf fix: Console logs are outputted twice when using TestAdapter (#2790) (by @filzrev)
- b6de72 Lowercase programName in NativeMemoryLogParser.cs (#2795) (by @mriehm)
- aeedf3 chore: fix x86 disassembler error for net462 (#2792) (by @filzrev)
- da43e0 chore: Replace StyleCop.Analyzer library to unstable version (#2796) (by @filzrev)
- ab703a chore: add workflow to run selected tests (#2797) (by @filzrev)
- 4f646d Fix
IsNetCore
andIsNativeAOT
for single-file apps without AOT (#2799) (by @timcassell) - d990f1 Fix comment in package props about GenerateProgramFile (#2802) (by @Youssef1313)
- a15782 Fix workload warmup mode. (by @timcassell)
- 604ff5 deps: update BenchmarkDotNetDiagnosers package version (#2805) (by @filzrev)
- 197d8e Split
TimeConsumingBenchmark
class to reduce test time. (by @timcassell) - 81a4e5 Fix EtwProfiler for file paths slightly under 260 chars (#2808) (by @mriehm)
- 8b6278 feat: add vstestadapter filter support (#2788) (by @filzrev)
- 725097 chore: fix flaky memorydiagnoser tests on macos (#2813) (by @filzrev)
- a9cd78 Deprecate
WithNuget
(#2812) (by @timcassell) - daa233 Use
--nodeReuse:false
. (#2814) (by @timcassell) - e2d30d chore: ensure EventProcessor::OnEndValidationStage is called when critical va... (by @filzrev)
- e7cf8b chore: suppress XmlException thrown when TextReader.Null passed (#2817) (by @filzrev)
- e704ad Fix ArgumentsSource on external types not working if the argument type is not... (by @JimmyCushnie)
- 0806c6 Update the naot instruction set support for .NET 10+ (#2828) (by @tannergooding)
- 96620b Fix typo in BuildPlots.R (by @AtomChen0425)
Contributors (9)
- Alastair Lundy (@alastairlundy)
- Andrey Akinshin (@AndreyAkinshin)
- filzrev (@filzrev)
- Jimmy Cushnie (@JimmyCushnie)
- Mark Riehm (@mriehm)
- Tanner Gooding (@tannergooding)
- Tim Cassell (@timcassell)
- Youssef Victor (@Youssef1313)
- Yuhang Chen (@AtomChen0425)
Thank you very much!
Additional details
Date: September 17, 2025
Milestone: v0.15.3 (List of commits)
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.15.3
- https://www.nuget.org/packages/BenchmarkDotNet.Annotations/0.15.3
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.dotMemory/0.15.3
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.dotTrace/0.15.3
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.15.3
- https://www.nuget.org/packages/BenchmarkDotNet.Exporters.Plotting/0.15.3
- https://www.nuget.org/packages/BenchmarkDotNet.Templates/0.15.3
- https://www.nuget.org/packages/BenchmarkDotNet.TestAdapter/0.15.3