Show / Hide Table of Contents

BenchmarkDotNet v0.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

Milestone details

In the v0.10.1 scope, 9 issues were resolved and 2 pull requests were merged. This release includes 38 commits by 2 contributors.

Resolved issues (9)

  • #133 High differences between run for GC Diagnoser (assignee: @adamsitnik)
  • #186 GC Diagnoser should not include allocations done by Setup method (assignee: @adamsitnik)
  • #200 be accurate about allocated bytes/op (assignee: @adamsitnik)
  • #208 Troubles with MemoryDiagnoserTests (assignee: @adamsitnik)
  • #298 PlatformNotSupportedException when reading ProcessorAffinity on MacOS (assignee: @adamsitnik)
  • #301 netcoreapp1.1 support (assignee: @adamsitnik)
  • #309 Diagnosers don't export data to the measurements.csv files (assignee: @adamsitnik)
  • #312 RuntimeInformation can be made static and internal (assignee: @AndreyAkinshin)
  • #313 Bug in Generator (interface as a return type) (assignee: @AndreyAkinshin)

Merged pull requests (2)

  • #284 built-in accurate and cross platform Memory Diagnoser (by @adamsitnik)
  • #314 Improved information about job environments in summary (by @AndreyAkinshin)

Commits (38)

  • 23f3b2 built-in accurate and cross platform Memory Diagnoser, fixes #186, fixes #200 (by @adamsitnik)
  • 4cabc2 don't try to use AppDomain's Monitoring in Mono since it's not implemented there (by @adamsitnik)
  • 99c21e scale GC collections count / op, makes MemoryDiagnoser output stable for benc... (by @adamsitnik)
  • e91255 use per mille to make the Memory Diagnoser output more human-friendly + reduc... (by @adamsitnik)
  • a0536d Merge branch 'master' into universalMemoryDiagnoser (by @adamsitnik)
  • ade1be preallocate results list in more safe, but still ugly way (by @adamsitnik)
  • 102282 closed the ugly code in separate class (by @adamsitnik)
  • 7825b7 Update links in docs (by @AndreyAkinshin)
  • aaf720 Fix typo (by @AndreyAkinshin)
  • 1e2d38 update to netcoreapp1.1 in order to get universal cross platform memory diagn... (by @adamsitnik)
  • e69e80 don't show Gen 1 and Gen 2 columns if empty for all benchmarks (by @adamsitnik)
  • b10a84 PlatformNotSupportedException when reading ProcessorAffinity on MacOS, fixes ... (by @adamsitnik)
  • 2a529a update to .NET Core 1.1, fixes #301 (by @adamsitnik)
  • e6ccee always show Gen 0 column, display Gen 0/1/2 per 1k op (by @adamsitnik)
  • 3bcc59 Merge branch 'master' into universalMemoryDiagnoser (by @adamsitnik)
  • a09810 make public things readonly, expensive things lazy and extend's validators in... (by @adamsitnik)
  • eae2cd added documentation and smarter bytes formatting (by @adamsitnik)
  • 1208c3 Merge branch 'master' into universalMemoryDiagnoser (by @adamsitnik)
  • f1f231 Merge pull request #284 from dotnet/universalMemoryDiagnoser (by @AndreyAkinshin)
  • 6300a2 include MemoryDiagnoser's results in CsvMeasurementsExporter, fixes #309 (by @adamsitnik)
  • ddb37e don't use spaces in columns names in CSV, #309 (by @adamsitnik)
  • 112f62 Fix stupid bug with condition for optional MedianColumn (by @AndreyAkinshin)
  • 60127c Remove Cpu_Ilp_RyuJit.cs because it's obsolete (by @AndreyAkinshin)
  • 401456 Print full information about a GenerateException (by @AndreyAkinshin)
  • 0b9177 Support of benchmark methods with an interface as a return type, fixed #313 (by @AndreyAkinshin)
  • b42b9e Improved information about job environments in summary (by @AndreyAkinshin)
  • 92f1db Improved information about job environments in summary, part 2 (by @AndreyAkinshin)
  • 5d8dd7 Merge pull request #314 from dotnet/summary (by @AndreyAkinshin)
  • d279f6 Make RuntimeInformation static internal, fix #312 (by @AndreyAkinshin)
  • 1df6ca Minor API improvements in BenchmarkSwitcher (by @AndreyAkinshin)
  • c12daf Dot't show the median column for the N=1 case (by @AndreyAkinshin)
  • 19caa2 RyuJit is always avaiable for .NET Core (by @adamsitnik)
  • 13e12c make JitOptimizationsValidator work for .NET Core (needed properties are avai... (by @adamsitnik)
  • c17b43 hide the AllocatedBytes column for Mono, show Gen 0 only if any of the benchm... (by @adamsitnik)
  • 29ac91 updated docs about Diagnosers in the Overview ;) (by @adamsitnik)
  • cc974e Improved information about job environments in summary, part 3 (by @AndreyAkinshin)
  • 8846af Update docs (by @AndreyAkinshin)
  • 37b126 Set library version: 0.10.1 (by @AndreyAkinshin)

Contributors (2)

  • Adam Sitnik (@adamsitnik)
  • Andrey Akinshin (@AndreyAkinshin)

Thank you very much!

Additional details

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
  • Improve this Doc
In This Article
Back to top Copyright © 2013–2021 .NET Foundation and contributors