Этот файл содержит неоднозначные символы Юникода, которые могут быть перепутаны с другими в текущей локали. Если это намеренно, можете спокойно проигнорировать это предупреждение. Используйте кнопку Экранировать, чтобы подсветить эти символы.
0.10.14
In the v0.10.14 scope, 8 issues were resolved and 11 pull requests where merged. This release includes 47 commits by 8 contributors.
Resolved issues (8)
- #256 Per-method parameterization (assignee: @AndreyAkinshin)
- #429 Detect multimodal distributions (assignee: @AndreyAkinshin)
- #496 Integration with TravisCI (assignee: @jongalloway)
- #684 Horology.ClockTests.ChronometerTest fails on Travis CI (macOS) (assignee: @AndreyAkinshin)
- #689 DisassemblyDiagnoser for Mono does not work on Windows and Linux (assignee: @morgan-kn)
- #691 Cannot run F# benchmarks when benchmark returns F# generic (assignee: @adamsitnik)
- #697 Copy custom setting from app.config in multitarget projects (assignee: @adamsitnik)
- #706 Support private builds of .NET Runtime (assignee: @adamsitnik)
Merged pull requests (11)
- #577 Arguments (by @adamsitnik)
- #647 Histograms and multimodal distribution detection, fixes #429 (by @AndreyAkinshin)
- #674 Cleanup suggested by VS2017 Code Analysis (plus one typo) (by @shoelzer)
- #675 Fix IDE0034: 'default' expression can be simplified (by @shoelzer)
- #676 Correct NodeTime text which links to NodaTime api (by @MishaHusiuk)
- #681 Fix typo (Perdictor -> Predictor) (by @dmitry-ra)
- #682 Fix typo (Perdictor -> Predictor) (by @dmitry-ra)
- #683 Integration with TravisCI (by @Ky7m)
- #694 Fix 689 (by @morgan-kn)
- #695 Rename Program to UniqueProgramName to avoid conflicts, fixes #691 (by @adamsitnik)
- #696 Build system: Update dotnet SDK and dotnet runtime. Enable FastTests netcoreapp1.1 on non-Windows. (by @Ky7m)
Commits (47)
- 41aeea Histograms and multimodal distribution detection, fixes #429 (by @AndreyAkinshin)
- 960e58 Handle measurements with zero operations (by @AndreyAkinshin)
- 19cddd Fix typo in BaselineScaledColumn.cs (by @dfederm)
- a99594 Merge pull request #673 from dfederm/dfederm/fix-typo (by @AndreyAkinshin)
- 5b3425 Cleanup suggested by VS2017 Code Analysis (plus one typo) (#674) (by @shoelzer)
- 16b611 Fix IDE0034: 'default' expression can be simplified (by @shoelzer)
- 048b32 Merge pull request #675 from shoelzer/master (by @AndreyAkinshin)
- 9d5f71 Correct NodeTime text which links to NodaTime lib (by @MishaHusiuk)
- c450c7 Merge pull request #676 from MishaHusiuk/patch-1 (by @adamsitnik)
- 9fad52 Fix typo (Perdictor -> Predictor) (by @dmitry-ra)
- 3d906f Fix typo (Perdictor -> Predictor) (by @dmitry-ra)
- d1a48e Merge pull request #681 from dmitry-ra/master (by @AndreyAkinshin)
- 4ccd35 Merge pull request #682 from dmitry-ra/patch-1 (by @AndreyAkinshin)
- f743a1 CakeBuild 0.24.0 -> 0.26.1 (by @Ky7m)
- c5eb40 Remove postProjects from solution file. (by @Ky7m)
- e60387 Pass correct configuration to test settings (by @Ky7m)
- 224ab8 Disable public sign option for F# project (by @Ky7m)
- ee98f3 Limit Max CPU count for msbuild workers (by @Ky7m)
- 17031d Fix readme file (by @Ky7m)
- 6fbae8 One more update to readme file (by @Ky7m)
- cb90f2 disable Travis failing test #684 to unblock #683 (by @adamsitnik)
- 782ca7 Merge pull request #683 from Ky7m/Integration-with-TravisCI (by @adamsitnik)
- eebf92 Merge branch 'master' into multimodal (by @adamsitnik)
- 10511b Merge pull request #647 from dotnet/multimodal (by @adamsitnik)
- 57bc17 Fix bug in ClockTests.ChronometerTest, fixes #684 (by @AndreyAkinshin)
- 7c4b14 Arguments (#577), fixes #256 (by @adamsitnik)
- 40771c Update dotnet SDK (2.1.4 -> 2.1.101) and dotnet runtime (1.1.6 -> 1.1.7). (by @Ky7m)
- 88a9db Merge pull request #696 from Ky7m/build-runtime-update (by @adamsitnik)
- 4ac6ad we need different name than typical "Program" to avoid problems with referenc... (by @adamsitnik)
- 1178d6 Update build badges (by @AndreyAkinshin)
- 24ed1f ProcessHelper: handle null Data values in OutputDataReceived, fix #689 (by @morgan-kn)
- 7a3d2b MonoDisassembler improvements (by @morgan-kn)
- f1a0f5 Merge pull request #694 from morgan-kn/Fix689 (by @AndreyAkinshin)
- 428905 .NET Core apps are .dlls (not .exes), fixes #697 (by @adamsitnik)
- befbc8 Add FAQ notes about #692 (by @AndreyAkinshin)
- b4504b Support private builds of .NET Runtime, fixes #706 (by @adamsitnik)
- c93e1e Introduce separate logic for Windows10 brand strings (by @AndreyAkinshin)
- 685766 Shortify Windows 10 brand strings in the summary (by @AndreyAkinshin)
- 9bdd0c Shortify cpu info in summary (by @AndreyAkinshin)
- 2288ad Prettify macOS brand string (by @AndreyAkinshin)
- 8a0b48 Handle tailed nop instructions in mono disasm output (by @AndreyAkinshin)
- d80834 Advanced DryJob attributes (by @AndreyAkinshin)
- 9a37ad Handle invalid mono disasm outputs (by @AndreyAkinshin)
- 21d6d7 Add IntroDisasm (by @AndreyAkinshin)
- 5e37b5 Add "Disassembly Diagnoser for Mono on Windows" in docs (by @AndreyAkinshin)
- c2c4e8 set COMPLUS_Version env var for private Clr builds even if no env vars were d... (by @adamsitnik)
- 88b088 Set library version: 0.10.14 (by @AndreyAkinshin)
Contributors (8)
- Adam Sitnik (@adamsitnik)
- Andrey Akinshin (@AndreyAkinshin)
- David Federman (@dfederm)
- Dmitry Razumikhin (@dmitry-ra)
- Igor Fesenko (@Ky7m)
- Irina Ananyeva (@morgan-kn)
- MishaHusiuk (@MishaHusiuk)
- Steve Hoelzer (@shoelzer)
Thank you very much!
Date: April 09, 2018
Milestone: v0.10.14 (List of commits)
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.14
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.14
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.14
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.14
0.10.13
In the v0.10.13 scope, 15 issues were resolved and 9 pull requests where merged. This release includes 50 commits by 8 contributors.
Overview post: BenchmarkDotNet v0.10.13
Resolved issues (15)
- #541 Mono Support for DisassemblyDiagnoser (assignee: @morgan-kn)
- #614 Build fails with "'Microsoft.NETCore.App', version '1.1.2' was not found" probably due to 1.1.4 runtime not being available
- #626 Support Visual Basic project files (.vbroj) targeting .NET Core (assignee: @adamsitnik)
- #630 Bug: Statistics.DivMean - NullReferenceException (assignee: @AndreyAkinshin)
- #631 Bug: Generic benchmark class fails for DisassemblyDiagnoser with "Sequence contains no matching element" (assignee: @adamsitnik)
- #632 ParamsSource no longer sorted in results (assignee: @AndreyAkinshin)
- #634 Extend SummaryOrderPolicy (assignee: @adamsitnik)
- #636 Unable to run Runner.exe --method MethodName (assignee: @adamsitnik)
- #640 Disassembler fails with generic instance (assignee: @adamsitnik)
- #643 Feature 'private protected' is not available in C# 7.0. Please use language version 7.2 or greater. (assignee: @adamsitnik)
- #644 BenchmarkDotNet.Mathematics.RankHelper again. (assignee: @AndreyAkinshin)
- #648 BenchmarkDotNet requires dotnet cli toolchain to be installed (assignee: @adamsitnik)
- #651 Support ANY CoreFX and CoreCLR builds (assignee: @adamsitnik)
- #652 BenchmarkSwitcher should support generic types with parameterless public ctors (assignee: @adamsitnik)
- #653 Proper way to run BenchmarkDotNet on macOS/Linux (assignee: @adamsitnik)
Merged pull requests (9)
- #624 Upgrade build tools (by @Ky7m)
- #625 Fix xunit warnings connected to usage of Assert.Equal() to check for Null (by @Ky7m)
- #633 HostEnvironmentInfo: remove LogicalCoreCount (by @morgan-kn)
- #637 Mono Support for DisassemblyDiagnoser #541 (by @morgan-kn)
- #639 Portability.Cpu tests improvements (by @morgan-kn)
- #642 sync DataContracts to CopiedDataContracts (by @morgan-kn)
- #645 Fixing --help display for options (by @ENikS)
- #646 Allow sorting by the Method name in DefaultOrderProvider and OrderProviderAttribute (by @ENikS)
- #666 Plots...Examples...Added A config example in F# (by @ScottHutchinson)
Commits (50)
- a26e82 Upgrade build tools: (by @Ky7m)
- 1643cb Merge pull request #624 from Ky7m/upgrade-build-tools (by @adamsitnik)
- abae51 Fix xunit warnings connected to usage of Assert.Equal() to check for null val... (by @Ky7m)
- fb68bc support Visual Basic .NET Core projects, fixes #626 (by @adamsitnik)
- 067a33 Remove redundant properties in common.props (by @AndreyAkinshin)
- 80deb9 BuildNumber fix in common.props (by @AndreyAkinshin)
- 87b458 Add CONTRIBUTING.md (by @AndreyAkinshin)
- 8bcf42 Add CODE_OF_CONDUCT.md (by @AndreyAkinshin)
- d3867d HostEnvironmentInfo: remove LogicalCoreCount (#633) (by @morgan-kn)
- 06e66a Specify PLACE_SIMPLE_EMBEDDED_STATEMENT_ON_SAME_LINE in DotSettings (by @AndreyAkinshin)
- d8ac43 Mono Support for DisassemblyDiagnoser #541 (by @morgan-kn)
- 4356da Merge pull request #637 from morgan-kn/MonoSupportForDisassemblyDiagnoser (by @AndreyAkinshin)
- 7572f4 Fix paths to images in docs (by @AndreyAkinshin)
- f076df Portability.Cpu tests improvements (by morgan_kn)
- da6499 Merge pull request #639 from morgan-kn/TestsImprovment (by @AndreyAkinshin)
- 5dd1a5 Disassembly Diagnoser: support for generic types, fixes #640 fixes #631 (by @adamsitnik)
- 3c0e71 diassembly diangoser: different methods can have same metadata id, add type i... (by @adamsitnik)
- 294801 test fix ;) (by @adamsitnik)
- 9e66bb sync DataContracts to CopiedDataContracts (by Irina Ananyeva)
- 690f34 Merge pull request #642 from morgan-kn/sync (by @adamsitnik)
- e1e3e2 don't use type.Fullname for file names, it's too long for generics (by @adamsitnik)
- 43d7c2 we restore before build, so build does need to restore too (it's new default ... (by @adamsitnik)
- 9d4c33 trying harder to trick the JIT (#640, #631) (by @adamsitnik)
- f8f70f Natural ordering for logical groups, fixes #632 (by @AndreyAkinshin)
- a2ec34 copy LanguageVersion to the output .csproj, fixes #643 (by @adamsitnik)
- 31e6dd Fixing --help display for options (#645), fixes #636 (by @ENikS)
- 45ace9 Allow sorting by the Method name in DefaultOrderProvider and OrderProviderAtt... (by @ENikS)
- 8811f2 Fix typo in docs/guide/Contributing/Disassembler.md (by @AndreyAkinshin)
- 7da7b9 allow the users to customize Artifacts Path, #377 (by @adamsitnik)
- 7554bf validate CustomDotNetCliPath, fixes #648 (by @adamsitnik)
- 683964 Support ANY CoreFX and CoreCLR builds, fixes #651 (by @adamsitnik)
- 695386 support also only custom CoreFX scenario (default runtime), part of #651 (by @adamsitnik)
- eb4dcf allow the users to copy some files after the publish, part of #651 (by @adamsitnik)
- b076a3 Add Newtonsoft.Json in the README (by @AndreyAkinshin)
- b4eef5 better generics support, fixes #652 (by @adamsitnik)
- 77fd46 Handle null values in Statistics.DivMean and Statistics.DivVariance, fixes #630 (by @AndreyAkinshin)
- e547f8 Fix NRE in RankColumn, fixes #644 (by @AndreyAkinshin)
- 28aa94 allow the users to choose .NET 4.7.1 (by @adamsitnik)
- 503570 Fixed image link (by @svick)
- 93cc85 Merge pull request #655 from svick/patch-1 (by @adamsitnik)
- d33cde Fixed code block formatting (by @svick)
- cb7c09 Merge pull request #657 from svick/patch-1 (by @adamsitnik)
- 650b4a host Mono process should be able to build .NET Core child process, fixes #653 (by @adamsitnik)
- d1dcab List formatting for FAQ (by @svick)
- fe52e3 Merge pull request #663 from svick/faq-formatting (by @adamsitnik)
- 7792cb Example in F#: with corrected code formatting (by @ScottHutchinson)
- e6b225 Merge pull request #666 from ScottHutchinson/patch-2 (by @AndreyAkinshin)
- f90207 Allow restore and build command override (#670) (by @Matthew-Bonner)
- 4443cd Update example in README (by @AndreyAkinshin)
- de0b68 Set library version: 0.10.13 (by @AndreyAkinshin)
Contributors (8)
- Adam Sitnik (@adamsitnik)
- Andrey Akinshin (@AndreyAkinshin)
- Eugene Sadovoi (@ENikS)
- Igor Fesenko (@Ky7m)
- Irina Ananyeva (@morgan-kn)
- Matthew Bonner (@Matthew-Bonner)
- Petr Onderka (@svick)
- Scott Hutchinson (@ScottHutchinson)
Thank you very much!
Date: March 02, 2018
Milestone: v0.10.13 (List of commits)
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.13
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.13
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.13
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.13
0.10.12
In the v0.10.12 scope, 14 issues were resolved and 10 pull requests where merged. This release includes 42 commits by 9 contributors.
Overview post: BenchmarkDotNet v0.10.12
Highlights
- Improved DisassemblyDiagnoser: BenchmarkDotNet contains an embedded disassembler so that it can print assembly code for all benchmarks; it's not easy, but the disassembler evolves in every release.
- Improved MemoryDiagnoser: it has a better precision level, and it takes less time to evaluate memory allocations in a benchmark.
- New TailCallDiagnoser: now you get notifications when JIT applies the tail call optimizations to your methods.
- Better environment info: when your share performance results, it's very important to share information about your environment. The library generates the environment summary for you by default. Now it contains information about the amount of physical CPU, physical cores, and logic cores. If you run a benchmark on a virtual machine, you will get the name of the hypervisor (e.g., Hyper-V, VMware, or VirtualBox).
- Better summary table: one of the greatest features of BenchmarkDotNet is the summary table. It shows all important information about results in a compact and understandable form. Now it has better customization options: you can display relative performance of different environments (e.g., compare .NET Framework and .NET Core) and group benchmarks by categories.
Resolved issues (14)
- #273 Create a tail call diagnoser
- #543 Run Disassembly Diagnoser without extra run (assignee: @adamsitnik)
- #546 Synthesizing labels for jump targets (assignee: @adamsitnik)
- #574 Display VM hypervisor in summary section (assignee: @lukasz-pyrzyk)
- #582 Print amount of logical and physical core (assignee: @morgan-kn)
- #599 Proper HTML escaping of BenchmarkAttribute Description
- #606 Improve Memory Diagnoser (assignee: @adamsitnik)
- #608 Properly escaping generated markdown (assignee: @AndreyAkinshin)
- #612 Disassembler DisassembleMethod fails with "Object reference not set to an instance of an object.", (assignee: @adamsitnik)
- #617 Allow baseline per category (assignee: @AndreyAkinshin)
- #618 Enable ApprovalTests in .NET Core 2.0 tests (assignee: @AndreyAkinshin)
- #621 Try to search for missing references if build fails (assignee: @adamsitnik)
- #622 Support of new GC settings (assignee: @adamsitnik)
- #623 RPlotExporter uses wrong path to csv measurements (assignee: @AndreyAkinshin)
Merged pull requests (10)
- #573 Сreate a tail call diagnoser (by @GeorgePlotnikov)
- #576 Display VM name in summary section, fixes #574 (by @lukasz-pyrzyk)
- #595 Migrate all project to new project system. (by @mfilippov)
- #598 Added info about the new TailCallDiagnoser (by @GeorgePlotnikov)
- #603 Fix HTML Encoding for Html Exporter (by @Chrisgozd)
- #605 Grammar (by @onionhammer)
- #607 Print amount of logical and physical core #582 (by @morgan-kn)
- #615 Quick fix Disassembler.Program.GetMethod when more than one method found just return null (by @nietras)
- #619 Logical group support, fixes #617 (by @AndreyAkinshin)
- #620 New README.md (by @AndreyAkinshin)
Commits (42)
- 6f587d Migrate all project to new project system. (by @mfilippov)
- 47ba57 added info about the new TailCallDiagnoser (by @GeorgePlotnikov)
- c1a4b2 Сreate a tail call diagnoser (#573) (by @GeorgePlotnikov)
- ebe3e2 Merge pull request #598 from GeorgePlotnikov/patch-1 (by @adamsitnik)
- 6249f0 some polishing of the JIT diagnosers (by @adamsitnik)
- 119231 Fix HTML Encoding for Html Exporter (#603), fixes #599 (by @Chrisgozd)
- fe3f30 Disassembly Prettifier, fixes #546 (by @adamsitnik)
- 3eb63f Merge pull request #595 from mfilippov/new-fs-vb-proj (by @adamsitnik)
- 16d03f make our F# samples work for .NET Core 2.0 (by @adamsitnik)
- d06de7 bring back our old Visual Basic and F# integration tests (by @adamsitnik)
- 63249b "Kaby Lake R" and "Coffee Lake" support in ProcessorBrandStringHelper (by @AndreyAkinshin)
- a8a09e disassembly prettifier: highlighting references to labels, jumping to next on... (by @adamsitnik)
- e6d747 Grammar (by @onionhammer)
- fef4aa Merge pull request #605 from onionhammer/patch-1 (by @adamsitnik)
- ffacd7 don't require extra run for DisassemblyDiagnoser, fixes #543, #542 (by @adamsitnik)
- bcac26 revert last commit change (run global setup regardless of Jitting) (by @adamsitnik)
- 3e87d8 don't perform an extra run to get GC stats for .NET Core, part of #550 (by @adamsitnik)
- f87dbc obtain GC stats in separate iteration run, no overhead, support for iteration... (by @adamsitnik)
- e5fe0f update to C# 7.1 so we can use all the latest features (by @adamsitnik)
- bc50b2 build benchmarks in Parallel, part of #550 (by @adamsitnik)
- e59590 Display VM name in summary section, fixes #574 (#576) (by @lukasz-pyrzyk)
- 8908f8 fix GetMethod (by @nietras)
- 4ca82d Merge pull request #615 from nietras/disassembler-more-than-one-method-fix (by @adamsitnik)
- 387ae5 be more defensive when trying to read source code with disassembler, part of ... (by @adamsitnik)
- 703815 docs: how to contribute to disassembler (by @adamsitnik)
- 242671 Enable ApprovalTests in .NET Core 2.0 tests, fixes #618 (by @AndreyAkinshin)
- c4d21b Print amount of logical and physical core #582 (#607) (by @morgan-kn)
- e33e84 Add HtmlReady dialect for MarkdownExporter, fixes #608 (by @AndreyAkinshin)
- cf167b Enable html escaping for GitHub markdown dialect, fixes #608 (by @AndreyAkinshin)
- 8bb28b Logical group support, fixes #617 (by @AndreyAkinshin)
- ae87c6 Merge pull request #619 from dotnet/logical-groups (by @adamsitnik)
- 14e90b parallel build post fix: don't write the compilation errors to NullLogger, re... (by @adamsitnik)
- db4ae8 Try to search for missing references if build fails, fixes #621 (by @adamsitnik)
- 0eba0f Support of new GC settings, fixes #622 (by @adamsitnik)
- e31b2d Revert Samples/Program.cs (by @AndreyAkinshin)
- 7f126b Add logs in RPlotExporter (by @AndreyAkinshin)
- f8a447 Fix path to csv in RPlotExporter, fixes #623 (by @AndreyAkinshin)
- 273f50 New plots in RPlotExporter (by @AndreyAkinshin)
- f293f0 New README.md (#620) (by @AndreyAkinshin)
- 5e3366 Update copyright year in docs (by @AndreyAkinshin)
- ab7458 Update index in docs (by @AndreyAkinshin)
- 4616d4 Set library version: 0.10.12 (by @AndreyAkinshin)
Contributors (9)
- Adam Sitnik (@adamsitnik)
- Andrey Akinshin (@AndreyAkinshin)
- Christopher Gozdziewski (@Chrisgozd)
- Erik O'Leary (@onionhammer)
- George Plotnikov (@GeorgePlotnikov)
- Irina Ananyeva (@morgan-kn)
- Łukasz Pyrzyk (@lukasz-pyrzyk)
- Mikhail Filippov (@mfilippov)
- nietras (@nietras)
Thank you very much!
Date: January 15, 2018
Milestone: v0.10.12 (List of commits)
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.12
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.12
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.12
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.12
0.10.11
Highlights
- ByRef and Stack-only support (#492, sample)
- .NET Core 2.1 support (#587)
- Improved LINQPad support
- Smart logic for precision in ScaledColumn (#509, #590)
- Better macOS version detection (15d72388)
- Minor fixes and improvements
Resolved Issues
- #509 Better formatting for the Scaled column
- #579 Improve error message about non-optimized dependencies
- #580 How to get benchmarks running from LINQPad?
- #587 Support netcoreapp2.1
- #588 Broken appveyor build
- #593 BenchmarkDotNet is not working with LinqPad
Merged Pull Requests
- #492 ByRef and Stack-only support
- #575 xUnit runner upgrade and small tests refactoring
- #584 Fixed typo
- #589 Add support for netcoreapp2.1
- #590 Add precision to Scaled Column
- #591 Fix CI build
- #592 Removed a xunit workaround because an issue has been fixed
- #597 Fix typo in WithCustomBuildConfiguration API
Commits and Contributors
This release includes 18 commits by 8 contributors:
- @adamsitnik
- @AlekseiKudelia
- @AndreyAkinshin
- @benjamin-hodgson
- @Chrisgozd
- @cincuranet
- @eerhardt
- @Ky7m
Date: December 01, 2017
Milestone: v0.10.11 (List of commits)
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.11
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.11
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.11
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.11
0.10.10
Highlights:
- Disassembly Diagnoser (read more here: Disassembling .NET Code with BenchmarkDotNet)
- ParamsSources
- .NET Core x86 support
- Environment variables and Mono args support
- Better environment description
- More: additional sections in the documentation, bug fixes, build script improvements, internal refactoring.
Overview post: BenchmarkDotNet v0.10.10
This release includes 95 commits by 12 contributors:
- @adamsitnik
- @aidmsu
- @AndreyAkinshin
- @ig-sinicyn
- @ipjohnson
- @jawn
- Jiri Cincura
- @Ky7m
- @lukasz-pyrzyk
- @pentp
- @rolshevsky
- @Teknikaali
Thank you very much!
Resolved Issues
- #160 Make ClrMd Source diagnoser working with new ClrMD api
- #167 Detect virtual machine environment
- #262 Runtime knobs
- #310 Support 32bit benchmarks for .NET Core
- #350 ParamsSource
- #437 Add DisassemblyDiagnoser for outputting disassembled JITed code
- #466 MSBuild parameters are not passed to generated benchmark project
- #495 Attributes put on base methods are not considered in derived class
- #500 Borken compilation for net46 projects when .NET Framework 4.7 is installed
- #505 JsonExporterBase doesn't include MemoryDiagnoser stats in output
- #511 [bug] Bug in GetTargetedMatchingMethod() logic
- #513 IterationSetup not run in Job.InProcess
- #516 Get a compilation error "CS1009: Unrecognized escape sequence" when using verbatim strings
- #519 BenchmarkSwitcher.RunAllJoined throws InvalidOperationException
- #526 Remove project.json support
- #529 No namespace in export filenames can lead to data loss
- #530 Build error on Appveyor with recent changes
- #533 When I clone, build, and run BenchmarkDotNet.Samples I get an error
- #534 Allow the users to compare 32 vs 64 RyuJit for .NET Core
- #535 No way to set RuntimeFrameworkVersion in multiple-version config
- #536 Strange disassembly ordering/truncation
- #537 Can't benchmark a netstandard2.0 project
- #538 Duplicate using causing benchmark not to work
- #539 Target .NET Core 2.0 to take advantage of the new APIs
- #540 Artifacts for disassembler projects
- #542 Problems with Disassembler + Job.Dry
- #555 Test "CanDisassembleAllMethodCalls" fails on Ubuntu
- #556 Table in report is broken in VSCode markdown viewer
- #558 Warn the users when running Benchmarks from xUnit with shadow copy enabled
- #559 DissassemblyDiagnoser jit/arch info seems to be wrong
- #561 Strange behaviour when benchmark project is build in debug mode
- #562 DisassemblyDiagnoser crashes on overloaded benchmark
- #564 [Bug] Benchmarking a method doesn't run global setup when filter is applied
- #571 Allow users to use non compile-time constants as Parameters
Merged Pull Requests
- #507 Fix a typo in Jobs.md
- #508 Fixed some typos and grammar
- #512 Warning about antivirus software after benchmark failure
- #514 #495 - Unit test for reading attributes from the base class
- #515 Fix #513 - IterationSetup not run in Job.InProcess
- #518 Fixed information about MemoryDiagnoser
- #520 XML Exporter documentation and samples
- #525 adding validator for setup cleanup attributes
- #527 Detecting virtual machine hypervisor, #167
- #531 Remove --no-build argument for dotnet test & pack commands
- #532 Fix type of local in EmitInvokeMultipleBody
- #547 Fix markdown headers
- #548 Fix condition in package reference list and update dotnet cli version from 1.0.4 to 2.0.0 for non-Windows system
- #549 Project files cleanup
- #552 Fix exporters to use fully qualified filenames
- #563 Remove leading space character in a MD table row, #556
- #565 Single point of full config creation
- #569 Update cakebuild scripts
Date: November 03, 2017
Milestone: v0.10.10 (List of commits)
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.10
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.10
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.10
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.10
0.10.9
- Migrate from custom build scripts to Cake (C# Make) (#426, #475, thanks @Ky7m)
- Target Setup methods for specific Benchmarks (#469, #501, thanks @ipjohnson)
- Many improvements in XmlExporter (#476, #488, thanks @Teknikaali)
- Add MemoryDiagnoser results to JsonExporter output (#453, #478, thanks @Teknikaali)
- Detect correct version of .NET Core (+ improved presentation for information about runtime) (#448, ed586585...ed586585)
- Fix UnauthorizedAccessException (#380, #390, #490, #491, 8505abb5)
- Fix app.config generation (#499, dc6dc411)
- Fix incorrect order of IterationCleanup and Benchmark jitting (#481, #503)
- Fix test scripts for MacOS+zsh (1177c8)
- Unix-related ProcessorAffinity fixes (#474, 26d44411)
- Minor fixes in docs (#465, #467, #473, #480, #483, thanks @mtschneiders, @davkean, @aarondandy, @AmadeusW)
- Temporary hacks for appveyor connectivity incident (#497, #506)
- Additional warnings for incorrect Configs (#482, eb84825f)
- Additional warnings for F# methods with spaces (#479, 3c2c8dec, 7ba1c809, 3ca39afe)
Date: July 28, 2017
Milestone: v0.10.9
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.9
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.9
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.9
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.9
0.10.8
- Legend for time units (#349, #459, f14e508e)
- XML exporter (#157, #452, a0148db8)
- .NET Framework 4.7 support (#461, 3f2b5c3c, 5513873a)
- Public API for AllocationQuantum (#450, #462, a0148db8)
Date: June 09, 2017
Milestone: v0.10.8
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.8
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.8
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.8
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.8
0.10.7
- LINQPad support (5.22.05+) (#66, #445)
- Benchmark filters and categories (#248)
- Updated setup/cleanup attributes:
[GlobalSetup]
,[GlobalCleanup]
,[IterationSetup]
,[IterationCleanup]
(#270, #274, #325, #456) - Better Value Types support (afa803d0)
- Building Sources on Linux: it's possible to build the solution (with unloaded F#/VB projects), run samples (for both net46/netcoreapp1.1), run unit tests (for netcoreapp1.1 only)
- Fix minor bugs in
JsonExporter
(#451)
Date: June 05, 2017
Milestone: v0.10.7
Overview post: http://aakinshin.net/blog/post/bdn-v0_10_7/
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.7
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.7
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.7
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.7
0.10.6
- Removed buggy allocation from Engine which was spoiling the results of MemoryDiagnoser for micro benchmarks. This part of the code is now guarded with very strict integration tests, it should never happen again. We now also exclude the side effects of the Allocation Quantum. This bug was serious, you must update to
0.10.6
(#439) - Support of the
PackageTargetFallback
setting which allows to reference components that target old framework monikers (likedotnet5.4
orportable-net45+win8
) (#438) - Added
InstructionRetiredPerCycleColumn
which shows up automatically whenHardwareCounter.InstructionRetired
andHardwareCounter.TotalCycles
are used. - Support benchmark classes without namespace (#446)
- Fix problem with RPlotExporter and quoted directories in %PATH% (#446)
- Show Windows brand version in summary
Date: May 12, 2017
Milestone: v0.10.6
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.6
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.6
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.6
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.6
0.10.5
- Fixed SizeUnit presentation in the summary table (#434)
- In MemoryDiagnoser, now 1kB = 1024B (instead of 1000 in v0.10.4) (#434)
- Fix false allocations detection (#436 9b44de70)
- Hide ScaledSD column for small values (da857ad7)
- Autoselecting amount of digits after the decimal point (#404)
Date: April 26, 2017
Milestone: v0.10.5
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.5
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.5
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.5
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.5
0.10.4
- New logo
- Update to Roslyn 2.0, drop .NET 4.5 support (#303)
- Initial support of HardwareCounters (Windows only)
- Initial experimental support of in-process benchmarks
- Optional configs for
BenchmarkSwitcher
(#391, #392) - Host API interface (#356)
- Improved measurements for async benchmarks (#415)
- Improved precision level (MinIterationTimes is 500ms instead of 200ms; introduced
AccuracyMode.MaxAbsoluteError
andAccuracyMode.MaxRelativeError
instead ofAccuracyMode.MaxStdErrRelative
; logic which select amount of iterations uses confidence intervals instead of standard errors; the Error column (half of CI99.9%) is shown by default instead of StdErr) - Introduced
ISummaryStyle
, raw data in CSV reports (#118, #146, #396) - Handle cases when report files are existed and locked (#414, #416)
- MarkdownExporter right-justifies numeric columns (#421)
- Better colors for console output (#376)
- Column legends
- Add information about CPU microarchitecture for well-known processors to summary
- Fix AssemblyInformationalVersionAttribute (#382)
- Fix incorrect method filtering in BenchmarkSwitcher (#365)
- Fix OS Version in Summary for Windows 10 (#351)
- Fix OS Version on Mono
- Fix --class and --method filtering (#249)
- Fix --exporters option (#189)
- Fix escaping logic in CsvExporter (#294, #409)
- Fix MacOS detection
- Minor bugfixes and API improvements
Date: April 21, 2017
Milestone: v0.10.4
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.4
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.4
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.4
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.4
0.10.3
- New .csprojs support for .NET Core. Also for F# (#366)!
- New plots and RPlotExporter (density plots for each job; cumulative mean plots)
- Fixed exporter order (now RPlotExporer uses the actual measurements instead of previous version)
- Xplat improvments in RuntimeInformation
- Introduced
RunStrategy.Monitoring
- Possibility to set custom path for Mono (#306)
- Possibility to set any .NET Core version >= 1.1 (#336)
- MemoryDiagnoser is now disabled by default (Breaking changes!!) (#369)
Date: March 01, 2017
Milestone: v0.10.3
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.3
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.3
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.3
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.3
0.10.2
- Closed #307: culture invariant statistics output
- Closed #321: persist optimized, auto-generated dll compiled from url/plain code
- Closed #322: always restore the console foreground color
- Closed #337: Better detection of Rscript.exe in RPlotExporter
- Closed #345: fix bug in WelchTTestPValueColumn for DryJob
- VS 2017 compatibility fix
- fix bold markup for Atlassian exporter
- Improved precision of nanobenchmarks
- Minor infrastructure changes and misc fixes
Date: January 21, 2017
Milestone: v0.10.2
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.2
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.2
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.2
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.2
0.10.1
- MemoryDiagnoser got improved. The changes:
- Memory Diagnoser is now part of BenchmarkDotNet.Core.dll, and it's enabled by default
- MemoryDiagnoser is 100% accurate about allocated memory when using default settings or Job.ShortRun or any longer job. (see #284)
- Memory Diagnoser no longer includes allocations from Cleanup/Setup methods (see #186)
- the results are now scaled so they are stable across the runs. (see #133)
- .NET Core 1.1+ support, we no longer support 1.0, we target netcoreapp1.1 now. Reason: we wanted to use
GC.GetAllocatedBytesForCurrentThread
in MemoryDiagnoser which is available only in 1.1+ - Improved information about environment in summary
- Minor bugfixes
Date: December 04, 2016
Milestone: v0.10.1
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.1
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.1
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.1
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.1
0.10.0
- Now BenchmarkDotNet is a part of .NET Foundation
- Job and Column API refactoring (see new documentation)
- Measurement engine improvements
- Horology enhancement (see
TimeInterval
andFrequency
) - Introduced
RankColumn
which is based onWelchTTest
(see 157aabc3) - JsonExporters refactoring (see the Exporters/Json section in the documentation)
- Renamed JsonExporters classed and attributes
- JsonExporters with custom settings
- JsonExporters now includes information about the target type namespace (see #246).
- Add
JetBrains.Annotations
(see #253) - RFC 4180 support in CSV exporters (see #241)
- Many bugfixes
Date: November 10, 2016
Milestone: v0.10.0
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.10.0
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.10.0
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.10.0
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.10.0
Online Documentation: https://dotnet.github.io/BenchmarkDotNet/
0.9.9
- Attribute config style (see #166)
- Online documentation (see #219)
- Mono LLVM support (see #226)
- Async method support (see #236)
- NuGet packages and repo layout restructuring (see #225, #228)
[Cleanup]
attribute (see #215)- New statistics columns:
Skewness
,Kurtosis
,WelchTTestPValue
, Improved math for theScaled
column - Now current default branch is
master
- Minor improvements and bug fixes
Date: August 18, 2016
Milestone: v0.9.9
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.9
- https://www.nuget.org/packages/BenchmarkDotNet.Core/0.9.9
- https://www.nuget.org/packages/BenchmarkDotNet.Toolchains.Roslyn/0.9.9
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.9.9
Online Documentation: https://perfdotnet.github.io/BenchmarkDotNet/
0.9.8
- CoreCLR RTM support (see #216). Breaking change: we have dropped dnx451 and dnxcore50 support.
- Migration from MSBuild to Roslyn, which supports Mono on Linux and MacOS (see #149). Breaking change: we have dropped .NET 4.0 support.
- Ability to manage GC mode: turn on/off the Server/Concurrent GC modes, extend to CPU groups, set gcAllowVeryLargeObjects and avoid BenchmarkDotNet from forcing GC.Collect (see #188, #76 and #211)
- Support CopyToOutput (see #212). Now you can use native dependencies as well as custom files.
- Copying custom settings from app.config (see #108). It means we support assembly binding redirects as well as custom connection strings etc.
- AsciiDocExporter (see #169)
- Framework setting in Job has been removed (see #194)
- Minor bugfixes and improvements
Milestone: v0.9.8
Date: July 07, 2016
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.8
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.9.8
0.9.7
- .NET Core RC2 support (see #187)
- Bugfixes
Milestone: v0.9.7
Date: May 29, 2016
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.7
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.7-beta
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.9.7
0.9.6
Milestone: v0.9.6
Date: May 11, 2016
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.6
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.6-beta
- https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.9.6
0.9.5
- Added validators, JitOptimizationsValidator detects all non-optimzied dlls that were referenced #134
- Strong naming #101
- Add
IOrderProvider
#107 - Putting all the generated artifacts in a separate folder: ./BenchmarkDotNet.Artifacts/results and ./BenchmarkDotNet.Artifacts/bin #94
- Printing dotnet cli version for .NET Core and Dnx451, informing user when not installed. Closed #128
- Supporting assembly redirects #67
- Changed used msbuild version: 12 for .NET 4.5 (VS 2013), 14 for .NET 4.6 (VS 2015). Closed #132 and #137
- Switched to new ‘dotnet’ target framework monikers (dotnet5.4 instead of dnxcore50), why
- dnx452, dnx46, net462 support added
- Executing single Benchmark for multiple Runtimes also with Diagnoser attached (see #117)
- Misc minor changes
Milestone: v0.9.5
Date: May 02, 2016
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.5
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.5-beta
0.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
andJitModules
- 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: 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
0.9.3
Milestone: v0.9.3
Date: March 13, 2016
NuGet Packages:
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.3
- https://www.nuget.org/packages/BenchmarkDotNet/0.9.3-beta
0.9.2
Milestone: v0.9.2
Date: March 5, 2016
NuGet Packages:
0.9.1
Date: February 10, 2016
NuGet Packages:
0.9.0
- New API
- Autodetermination of amount iteration for warmup/target idle/main iterations, duration of iteration, amount of CLR launches.
Date: February 9, 2016
NuGet Packages:
0.8.2
- Changes in the Summary table
- Summary table now supports ResultExtenders that can add new column to the table
- Now we use StandardError (aka
Error
) as the main accuracy metric - Columns
op/s
,StdDev
are disabled by default (you can add it via ResultExtenders)
- Statistic improvements, now you have detailed statistic in the console log like follows:
Mean = 118.5298 us, StdError = 1.2863 us (N = 30, StdDev = 7.0454 us)
Min = 109.1602 us, Median = 117.1794 us, Max = 132.5764 us
IQR = 10.1244 us, LowerFence = 98.0834 us, UpperFence = 138.5810 us
ConfidenceInterval = [116.0086 us; 121.0510 us] (CI 95%)
- Added the
Baseline
feature, see #64 - Export improvements, now you have files
<BenchmarkName>-report-github.md
,<BenchmarkName>-report-stackoverflow.md
for easy publishing results on GitHub and StackOverflow. - Basic plotting. Added new
BenchmarkRPlotExporter
that createsBuildPlots.R
in the bin directory. It is an R script that generates boxplot and barplot for your benchmarks (you should have installed R with definedR_HOME
environment variable) - Updated environment info
- Added Stopwatch
Frequency
andResolution
- Split common benchmark properties (like
Mode
,Platform
,Runtime
) in several lines (3 properties per line)
- Added Stopwatch
- Log improvements: add total time, statistics, list of exported files
- Bug fixes
Date: January 19, 2016
NuGet Packages: