Show / Hide Table of Contents

BenchmarkDotNet v0.9.4

  • Improved messages about error in benchmarks, see #104
  • Natural sort order, see #92, #95, #97
  • Improved double/float/decimal/enum support for Params, see #96, #105, #116
  • Now environment info includes information about HardwareTimerKind and JitModules
  • Added DryConfig
  • Improved export performance, closed #119, merged #124
  • Better cmd-line discoverability (see #78), e.g. run Benchmark.exe --help and some useful information will be printed
  • Supporting all kinds of references for generated project (exact version, custom paths, GAC, sub-folders, dependent assemblies not copied), closed #41, #49, #72, #123, merged #125
  • Friendliness to LinqPad restored, closed #66, merged #125

Milestone details

In the v0.9.4 scope, 13 issues were resolved and 2 pull requests were merged. This release includes 55 commits by 4 contributors.

Resolved issues (13)

  • #41 Seems, not supported "sub-folder"
  • #49 Dependent assemblies are not copied or added to the project file.
  • #72 Referenced assembly dll-file (directly via file) not referenced in generated Program.csproj
  • #78 Better command line discoverability (assignee: @mattwarren)
  • #92 Results in the R graphs aren't displayed in a "Natural Sort Order"
  • #95 Results should preserve the order of param values definition
  • #96 Implement enums as valid Param for test
  • #97 Params changes an order
  • #104 System.InvalidOperationException: StatSummary: Sequence contains no elements
  • #105 Params Attribute bug with float type
  • #116 Issue when ParamAttribute decorated property is double and current system culture has comma as decimal separator
  • #119 For large benchmarks report exporting is very, very slow and has a massive Gen2 heap
  • #123 Can not run benchmark that references custom framework library (like WindowsBase)

Merged pull requests (2)

  • #124 Faster export (by @adamsitnik)
  • #125 supporting all kinds of references for generated project (by @adamsitnik)

Commits (55)

  • 74789d Sort results by Parameter, in a Natural Sort Order (by @mattwarren)
  • fec115 ParameterComparer refacotring (by @AndreyAkinshin)
  • 9d3856 Add information about JIT modules in EnvironmentHelper (by @AndreyAkinshin)
  • 7667ee Adding TraceEvent library for parsing ETW Events (by @mattwarren)
  • ae71f2 More work on the GC/Allocation diagnostics (by @mattwarren)
  • efa739 Allow diagnosers to be run from cmd line or via [Config(..)] (by @mattwarren)
  • 633f1c Throw an error when invalid Config(..) options are specified (by @mattwarren)
  • 04678a Add information about HardwareTimerKind (by @AndreyAkinshin)
  • 7f3cf0 Fix in GetCorrectTypeNameTest (by @AndreyAkinshin)
  • d9b890 Fix in HardwareTimerKind (by @AndreyAkinshin)
  • 416e36 Natural sort order for CsvMeasurementsExporter and plots, Fixed #92 (by @AndreyAkinshin)
  • dfc54a Ensure we sort the results by Method Name/Description (by @mattwarren)
  • fa6c62 Changed GCDiagnoser to inspect live ETW event stream instead of recording to ... (by @goldshtn)
  • d3f7ce Params: float/double/decimal support, Fixed #105 (by @AndreyAkinshin)
  • 7bce9b Params: enum support, Fixed #96 (by @AndreyAkinshin)
  • 4890dd Merge pull request #106 from goldshtn/develop (by @mattwarren)
  • 9072b9 More robust when a benchmark throws an exception (see #104) (by @mattwarren)
  • 2b9162 Work on #73 - highlighting in the Console output (by @mattwarren)
  • f62483 Work on #73 - highlighting in the Console output (by @mattwarren)
  • a639d5 Work on #73 - highlighting in Markdown output (by @mattwarren)
  • 1457fe Changing [ConfigWithDryJobs] -> [DryConfig] (by @mattwarren)
  • 396b7d Diagnostics for "JIT In-lining" events (by @mattwarren)
  • 7a1027 Merge remote-tracking branch 'origin/master' into develop (by @adamsitnik)
  • 6ec7f0 GC Diagnosers: reference to nuget package, unit test for both CLASSIC and DNX (by @adamsitnik)
  • 9e7059 Proper XML Doc comment for DryConfig attribute (by @mattwarren)
  • ad6be7 README.md: update (by @AndreyAkinshin)
  • a4d0b8 Merge branch 'master' into develop (by @adamsitnik)
  • 71e911 perf: CSV export: less allocations, reusing JobShortInfo (by @adamsitnik)
  • 409b5e perf: logging with less allocations (by @adamsitnik)
  • be6bfc perf: simpified LoggerWithPrefix, no need to check for multiple lines because... (by @adamsitnik)
  • ade8a1 perf: avoid string.Concat and string.PadLeft (by @adamsitnik)
  • f070eb perf: reuse AllProperties, reduced complexity (by @adamsitnik)
  • 57c88b perf: deffer export to enable continuous progress updates instead of single l... (by @adamsitnik)
  • 40071d loggers: final cleanup and fix for doubled new lines for diagnosers (by @adamsitnik)
  • c46854 supporting all kinds of references for generated project. This closes #49, cl... (by @adamsitnik)
  • a36e34 Initial work on better cmd line discoverability (part of #78) (by @mattwarren)
  • 3f0752 Better formatting in the Baseline column (by @mattwarren)
  • 8ab1a2 More samples (by @mattwarren)
  • 1981a3 Refactoring of ConfigParser code (part of #78) (by @mattwarren)
  • 3d1eba Allows "Exporters" and "Analysers" to be specified via cmd line (part of #78) (by @mattwarren)
  • 5d195a Allow "all" option, i.e. "exporters=all" (part of #78) (by @mattwarren)
  • 2146b8 Added some tests for ConfigParser (by @mattwarren)
  • 582e08 Merge pull request #124 from PerfDotNet/perf (by @AndreyAkinshin)
  • 84e67d README: Update team section (by @AndreyAkinshin)
  • 4d6001 README: add FAQ question (by @AndreyAkinshin)
  • 43ade3 BenchmarkDotNet.Samples: add #CLASSIC_RELEASE in launchSettings (by @AndreyAkinshin)
  • e3c2d1 README: some improvements (by @AndreyAkinshin)
  • c416c4 use the highest used target framework version to avoid framework mismatches +... (by @adamsitnik)
  • 8a49b3 Merge branch 'develop' into references (by @adamsitnik)
  • 23b2ea integration tests for complex references scenarios (by @adamsitnik)
  • ddfa4a classic: specify full name and use newer msbuild dlls to avoid calling extra bat (by @adamsitnik)
  • 79e8eb code cleanup after LINQPad 4 & 5 verification (by @adamsitnik)
  • 445137 Merge pull request #125 from PerfDotNet/references (by @AndreyAkinshin)
  • 4f1e1f Update package description (by @AndreyAkinshin)
  • 0f5531 Set library version: 0.9.4 (by @AndreyAkinshin)

Contributors (4)

  • Adam Sitnik (@adamsitnik)
  • Andrey Akinshin (@AndreyAkinshin)
  • Matt Warren (@mattwarren)
  • Sasha Goldshtein (@goldshtn)

Thank you very much!

Additional details

Milestone: v0.9.4

Date: March 24, 2016

NuGet Packages:

  • https://www.nuget.org/packages/BenchmarkDotNet/0.9.4
  • https://www.nuget.org/packages/BenchmarkDotNet/0.9.4-beta
  • Improve this Doc
In This Article
Back to top Copyright © 2013–2021 .NET Foundation and contributors