BenchmarkDotNet v0.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
Milestone details
In the v0.10.10 scope, 34 issues were resolved and 18 pull requests were merged. This release includes 95 commits by 12 contributors.
Resolved issues (34)
- #160 Make ClrMd Source diagnoser working with new ClrMD api (assignee: @adamsitnik)
- #167 Detect virtual machine environment (assignee: @lukasz-pyrzyk)
- #262 Runtime knobs (assignee: @adamsitnik)
- #310 Support 32bit benchmarks for .NET Core (assignee: @adamsitnik)
- #350 ParamsSource (assignee: @adamsitnik)
- #437 Add
DisassemblyDiagnoser
for outputting disassembled JITed code. (assignee: @adamsitnik) - #466 MSBuild parameters are not passed to generated benchmark project (assignee: @adamsitnik)
- #495 Attributes put on base methods are not considered in derived class (assignee: @lukasz-pyrzyk)
- #500 Borken compilation for net46 projects when .NET Framework 4.7 is installed (assignee: @adamsitnik)
- #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 (assignee: @AndreyAkinshin)
- #526 Remove project.json support (assignee: @adamsitnik)
- #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 (assignee: @adamsitnik)
- #535 No way to set RuntimeFrameworkVersion in multiple-version config (assignee: @adamsitnik)
- #536 Strange disassembly ordering/truncation (assignee: @adamsitnik)
- #537 Can't benchmark a netstandard2.0 project (assignee: @adamsitnik)
- #538 Duplicate using causing benchmark not to work (assignee: @adamsitnik)
- #539 Target .NET Core 2.0 to take advantage of the new APIs (assignee: @adamsitnik)
- #540 Artifacts for disassembler projects (assignee: @adamsitnik)
- #542 Problems with Disassembler + Job.Dry (assignee: @adamsitnik)
- #555 Test "CanDisassembleAllMethodCalls" fails on Ubuntu (assignee: @adamsitnik)
- #556 Table in report is broken in VSCode markdown viewer (assignee: @adamsitnik)
- #558 Warn the users when running Benchmarks from xUnit with shadow copy enabled (assignee: @adamsitnik)
- #559 DissassemblyDiagnoser jit/arch info seems to be wrong (assignee: @adamsitnik)
- #561 Strange behaviour when benchmark project is build in debug mode (assignee: @adamsitnik)
- #562 DisassemblyDiagnoser crashes on overloaded benchmark (assignee: @adamsitnik)
- #564 [Bug] Benchmarking a method doesn't run global setup when filter is applied (assignee: @adamsitnik)
- #571 Allow users to use non compile-time constants as Parameters (assignee: @adamsitnik)
Merged pull requests (18)
- #507 Fix a typo in Jobs.md (by @aidmsu)
- #508 Fixed some typos and grammar (by @lukasz-pyrzyk)
- #512 Warning about antivirus software after benchmark failure (by @lukasz-pyrzyk)
- #514 #495 - Unit test for reading attributes from the base class (by @lukasz-pyrzyk)
- #515 Fix #513 - IterationSetup not run in Job.InProcess (by @ig-sinicyn)
- #518 Fixed information about MemoryDiagnoser. (by @cincuranet)
- #520 XML Exporter documentation and samples (by @Teknikaali)
- #525 adding validator for setup cleanup attributes (by @ipjohnson)
- #527 Detecting virtual machine hypervisor, #167 (by @lukasz-pyrzyk)
- #531 Remove --no-build argument for dotnet test & pack commands. (by @Ky7m)
- #532 Fix type of local in EmitInvokeMultipleBody (by @pentp)
- #547 Fix markdown headers (by @jawn)
- #548 Fix condition in package reference list and update dotnet cli version from 1.0.4 to 2.0.0 for non-Windows system (by @Ky7m)
- #549 Project files cleanup (by @Ky7m)
- #552 Fix exporters to use fully qualified filenames (by @Teknikaali)
- #563 Remove leading space character in a MD table row, #556 (by @rolshevsky)
- #565 Single point of full config creation (by @ig-sinicyn)
- #569 Update cakebuild scripts (by @Ky7m)
Commits (95)
- 682820 Fix typo in Jobs.md (by @aidmsu)
- e82a8b Fixed some typos and grammar (by @lukasz-pyrzyk)
- a0e9b9 Disassembly Diagnoser: displaying ASM, IL and C# for any JIT (by @adamsitnik)
- 57e0f0 recursive disassembling (by @adamsitnik)
- 1975ae return structured results from Disassembler (by @adamsitnik)
- 9ae365 Warning about antivirus software after benchmark failure (#512) (by @lukasz-pyrzyk)
- 74b41e Unit test for reading attributes from the base class, fixes #495 (by @lukasz-pyrzyk)
- 3bab2d Fix #513 - IterationSetup not run in Job.InProcess (#515) (by @ig-sinicyn)
- 769a39 use the IL instructions to detect more calls (by @adamsitnik)
- b69537 use InstructionPointer to combine asm with hardware counters (by @adamsitnik)
- 200244 Fixed information about MemoryDiagnoser. (by Jiri Cincura)
- 848a1a handling the lovely edge cases (Cecil vs ClrMD differences in naming types an... (by @adamsitnik)
- 40049b single text representation of asm is a range of IPs! (by @adamsitnik)
- 56e252 XML Exporter documentation and samples (#520) (by @Teknikaali)
- c18597 eliminate duplicates (ClrMD fault), be more defensive for edge cases (by @adamsitnik)
- a9262f allow the users to specify recursive depth limit (50MB output for simple lock... (by @adamsitnik)
- fbe329 Support params which include slashes, fixes #516 (by @AndreyAkinshin)
- f2b9c0 Fix RunAllJoined, fixes #519 (by @AndreyAkinshin)
- 983764 UX ;) (by @adamsitnik)
- c010de adding validator for setup cleanup attributes (by @ipjohnson)
- 424723 Merge pull request #525 from ipjohnson/master (by @adamsitnik)
- 7b680a prefer unit tests over integration tests if possible (by @adamsitnik)
- 93dc6e Remove project.json support, fixes #526 (by @adamsitnik)
- 19f22b Merge pull request #518 from cincuranet/docs (by @adamsitnik)
- fe2db1 configurable, runtime specific diagnosers, hard part transparent to end users (by @adamsitnik)
- fb60e5 disassembly diagnoser for Mono (by @adamsitnik)
- 55ce0d smart diagnoser can choose the right disassembler (by @adamsitnik)
- 46c911 one test to verify all scenarios (by @adamsitnik)
- d06086 minor improvements (by @adamsitnik)
- 116119 group instructions into maps for better visualization (by @adamsitnik)
- d19b1e test fix: split on any new line ;) (by @adamsitnik)
- 647a67 Merge branch 'asm' (by @adamsitnik)
- 91c8e4 move disassembler stuff to resources of Core project to make it super easy to... (by @adamsitnik)
- 363900 Remove --no-build argument for dotnet test & pack commands. (by @Ky7m)
- 22e993 Disable parallel build option (by @Ky7m)
- 9c327c Merge pull request #531 from Ky7m/removes-no-build-argument (by @adamsitnik)
- 20db28 the docs for Disassembly Diagnoser, #437 (by @adamsitnik)
- 13732b added asm report with navigation (by @adamsitnik)
- 33ee03 fix type of local in EmitInvokeMultipleBody (by @pentp)
- 7d943f Merge pull request #532 from pentp/master (by @adamsitnik)
- 4d173d RyuJit 32bit support for .NET Core, fixes #310, fixes #533 (by @adamsitnik)
- 5f5237 test fix (set platform in explicit way to avoid lack of 32-bit .NET Core sdk ... (by @adamsitnik)
- f359c9 allow the users to set custom RuntimeFrameworkVersion, fixes #535 (by @adamsitnik)
- 264150 disassembler: print the results in machine code order, not il, part of #536 (by @adamsitnik)
- 0088bd Detecting virtual machine hypervisor, #167 (#527) (by @lukasz-pyrzyk)
- 007444 print all returns (maps with negative ILOffset are not always prolog or epilo... (by @adamsitnik)
- aebc32 empty methods for LegacyJit64 have only maps with negative ILOffset, #536 (by @adamsitnik)
- ba7489 docs for Toolchains, closes #537 (by @adamsitnik)
- 8c4f53 allow the users to specify custom build configuration, #466, close #528 (by @adamsitnik)
- eb80b2 Environment Variables support, #262 (by @adamsitnik)
- ab7045 test fixes ;) (by @adamsitnik)
- 455c60 allow the users to specify custom arguments (Mono, MsBuild), #466, #262 (by @adamsitnik)
- e03384 make sure that all new custom settings are presented in human friendly way, #262 (by @adamsitnik)
- cc8d07 enforce TreatWarningsAsErrors=False in auto-generated csproj to override glob... (by @adamsitnik)
- 97ab49 target .NET Core 2.0 to take full advantage of the new API, fixes #539 (by @adamsitnik)
- 8b2c7e check if reference assemblies are installed when choosing the default .NET fr... (by @adamsitnik)
- feabd1 bump the .NET Core version, #539 (by @adamsitnik)
- a21f86 for .NET Core 1.1 we should run only the Backward Compatibility tests. #539 (by @adamsitnik)
- b7a966 typo fix (by @adamsitnik)
- 73a30a docs: Customizing Mono, Env Variables & minor updates, fixes #262 (by @adamsitnik)
- 612b41 exclude Artifacts for disassembler projects, fixes #540 (by @adamsitnik)
- 360326 typo, #540 (by @adamsitnik)
- f3e4ae show nice error when Job.Dry is used for Disassembler, fixes #542 (by @adamsitnik)
- c6bbda allow to specify custom dotnet cli path to compare RyuJit 32 vs 64 for .NET C... (by @adamsitnik)
- a0c7e5 Add info about Redstone 3,4 in WindowsBrandVersions (by @AndreyAkinshin)
- d42262 Additional info about WindowsBrandVersions (by @AndreyAkinshin)
- cd0a1f Improve formatting in WindowsBrandVersions (by @AndreyAkinshin)
- 1cd844 Fix OsBrandStringTests.WindowsIsPrettified (by @AndreyAkinshin)
- f00787 Fix markdown headers (by @jawn)
- 363814 Merge pull request #547 from jawn/patch-1 (by @adamsitnik)
- 405c4c Update dotnet cli version from 1.0.4 to 2.0.0 for non-Windows system. (#548) (by @Ky7m)
- 97a9b2 Fix compiler warning connected to problem with the XML tag. (by @Ky7m)
- 24585d Remove PackageTargetFallback element. (by @Ky7m)
- 174c19 Merge pull request #549 from Ky7m/csproj-files-cleanup (by @AndreyAkinshin)
- 84a4e2 Fix exporters to use fully qualified filenames (#552), fixes #529 (by @Teknikaali)
- a7578a disable Disassembler tests for non-Windows OS, fixes #555 (by @adamsitnik)
- a147dd Remove leading space character in a MD table row, fixes #556 (by @rolshevsky)
- 9c194c DisassemblyDiagnoser crashes on overloaded benchmark, fixes #562 (by @adamsitnik)
- 9076a6 give users nice warning when they run into shadow copy issues, fixes #558 (by @adamsitnik)
- 1670ca the build fix ;) (by @adamsitnik)
- d5854d Include UBR in Windows versions (by @AndreyAkinshin)
- 1fcfee display correct runtime info in exported disassembly result, fixes #559 (by @adamsitnik)
- de45ad Single point of full config creation (#565) (by @ig-sinicyn)
- 395a52 make sure filters don't exclude Setup/Cleanup methods, fixes #564 (by @adamsitnik)
- 4276ac fail when running benchmarks in Debug with DefaultConfig, fixes #561 (by @adamsitnik)
- 0145f8 Fix build number for Windows 10 Fall Creators Update (by @AndreyAkinshin)
- 7f7a7c Update cakebuild scripts (#569) (by @Ky7m)
- cff577 introduce ParamsSource attribute, fixes #350, part of #256 (by @adamsitnik)
- 3af915 introduce IParam to support complex, not-compile time constants as parameters... (by @adamsitnik)
- 4a877f build the disassemblers before .Core, but don't add the dependency to them to... (by @adamsitnik)
- 188850 specify all the embedded resources in explicit way to avoid some crazy MSBuil... (by @adamsitnik)
- b5fbbf Typo fix (by @AndreyAkinshin)
- eb90ce Update message in JitOptimizationsValidator (by @AndreyAkinshin)
- 6c1137 Updated DotSettings (by @AndreyAkinshin)
- 3d0dfe Set library version: 0.10.10 (by @AndreyAkinshin)
Contributors (12)
- Adam Sitnik (@adamsitnik)
- Andrey Akinshin (@AndreyAkinshin)
- Andrey Dorokhov (@aidmsu)
- Anssi Kettunen (@Teknikaali)
- Bernard Vander Beken (@jawn)
- Ian Johnson (@ipjohnson)
- ig-sinicyn (@ig-sinicyn)
- Igor Fesenko (@Ky7m)
- Jiri Cincura
- Łukasz Pyrzyk (@lukasz-pyrzyk)
- Pent Ploompuu (@pentp)
- Rostislav Olshevsky (@rolshevsky)
Thank you very much!
Additional details
Date: November 03, 2017
Milestone: v0.10.10 (List of commits)
NuGet Packages: