diff --git a/README.md b/README.md index e92c4fa013..0e3d0a74b8 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ It's no harder than writing unit tests! Under the hood, it performs a lot of [magic](#Automation) that guarantees [reliable and precise](#Reliability) results thanks to the [perfolizer](https://github.com/AndreyAkinshin/perfolizer) statistical engine. BenchmarkDotNet protects you from popular benchmarking mistakes and warns you if something is wrong with your benchmark design or obtained measurements. The results are presented in a [user-friendly](#Friendliness) form that highlights all the important facts about your experiment. -The library is adopted by [13800+ projects](#who-uses-benchmarkdotnet) including .NET Runtime and supported by the [.NET Foundation](https://dotnetfoundation.org). +The library is adopted by [14300+ projects](#who-uses-benchmarkdotnet) including .NET Runtime and supported by the [.NET Foundation](https://dotnetfoundation.org). It's [easy](#Simplicity) to start writing benchmarks, check out an example (copy-pastable version is [here](https://benchmarkdotnet.org/articles/guides/getting-started.html)): @@ -231,7 +231,7 @@ If you don't customize the summary view, ## Who uses BenchmarkDotNet? Everyone! -BenchmarkDotNet is already adopted by more than [13800+](https://github.com/dotnet/BenchmarkDotNet/network/dependents?package_id=UGFja2FnZS0xNTY3MzExMzE%3D) projects including +BenchmarkDotNet is already adopted by more than [14300+](https://github.com/dotnet/BenchmarkDotNet/network/dependents?package_id=UGFja2FnZS0xNTY3MzExMzE%3D) projects including [dotnet/performance](https://github.com/dotnet/performance) (reference benchmarks for all .NET Runtimes), [dotnet/runtime](https://github.com/dotnet/runtime/issues?utf8=%E2%9C%93&q=BenchmarkDotNet) (.NET runtime and libraries), [Roslyn](https://github.com/dotnet/roslyn/search?q=BenchmarkDotNet&type=Issues&utf8=✓) (C# and Visual Basic compiler), @@ -266,9 +266,9 @@ BenchmarkDotNet is already adopted by more than [13800+](https://github.com/dotn [TensorFlow.NET](https://github.com/SciSharp/TensorFlow.NET/tree/master/src/TensorFlowNet.Benchmarks), [Apache Thrift](https://github.com/apache/thrift/tree/master/lib/netstd/Benchmarks/Thrift.Benchmarks). On GitHub, you can find - 11400+ [issues](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=created&type=Issues&utf8=✓), - 4900+ [commits](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=committer-date&type=Commits&utf8=✓), and - 1,550,000+ [files](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=indexed&type=Code&utf8=✓) + 12600+ [issues](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=created&type=Issues&utf8=✓), + 5200+ [commits](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=committer-date&type=Commits&utf8=✓), and + 1,600,000+ [files](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=indexed&type=Code&utf8=✓) that involve BenchmarkDotNet. ## Learn more about benchmarking diff --git a/docs/_changelog/details/v0.13.5.md b/docs/_changelog/details/v0.13.5.md new file mode 100644 index 0000000000..137cc2387e --- /dev/null +++ b/docs/_changelog/details/v0.13.5.md @@ -0,0 +1,52 @@ +## Milestone details + +In the [v0.13.5](https://github.com/dotnet/BenchmarkDotNet/issues?q=milestone:v0.13.5) scope, +3 issues were resolved and 11 pull requests were merged. +This release includes 14 commits by 4 contributors. + +## Resolved issues (3) + +* [#1942](https://github.com/dotnet/BenchmarkDotNet/issues/1942) Consider changing `Consume` to not hold onto references for very long (assignee: [@timcassell](https://github.com/timcassell)) +* [#2252](https://github.com/dotnet/BenchmarkDotNet/issues/2252) msbuild binlog for the benchmark projects gets cleaned up too, making diagnosis of build impossible (assignee: [@adamsitnik](https://github.com/adamsitnik)) +* [#2258](https://github.com/dotnet/BenchmarkDotNet/issues/2258) Strong name validation failed + +## Merged pull requests (11) + +* [#2178](https://github.com/dotnet/BenchmarkDotNet/pull/2178) Introduce MockToolchain (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [#2191](https://github.com/dotnet/BenchmarkDotNet/pull/2191) Don't hold onto references in Consumer (by [@timcassell](https://github.com/timcassell)) +* [#2246](https://github.com/dotnet/BenchmarkDotNet/pull/2246) improve the numbers reported for Tiered JIT (by [@adamsitnik](https://github.com/adamsitnik)) +* [#2248](https://github.com/dotnet/BenchmarkDotNet/pull/2248) Remove deprecated InProcessToolchain (by [@timcassell](https://github.com/timcassell)) +* [#2250](https://github.com/dotnet/BenchmarkDotNet/pull/2250) Add JitStatsDiagnoserAttribute (by [@KeterSCP](https://github.com/KeterSCP)) +* [#2251](https://github.com/dotnet/BenchmarkDotNet/pull/2251) UnresolvedDiagnoser needs to have an Id as well (by [@adamsitnik](https://github.com/adamsitnik)) +* [#2254](https://github.com/dotnet/BenchmarkDotNet/pull/2254) Keep generated files when MSBuild bin log is requested (by [@adamsitnik](https://github.com/adamsitnik)) +* [#2263](https://github.com/dotnet/BenchmarkDotNet/pull/2263) Enabled strong-named assemblies on all OS, fix #2258 (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [#2267](https://github.com/dotnet/BenchmarkDotNet/pull/2267) Bump Cake to 3.0.0 (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [#2268](https://github.com/dotnet/BenchmarkDotNet/pull/2268) simplify the MockRunner design (by [@adamsitnik](https://github.com/adamsitnik)) +* [#2269](https://github.com/dotnet/BenchmarkDotNet/pull/2269) bump SDK version to pick up .NET Runtime fix that should fix disassembler test issues (by [@adamsitnik](https://github.com/adamsitnik)) + +## Commits (14) + +* [9193d4](https://github.com/dotnet/BenchmarkDotNet/commit/9193d45c89516d9cf8036fe0393f5589c17aa502) Postrelease v0.13.4 update (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [7b1f29](https://github.com/dotnet/BenchmarkDotNet/commit/7b1f29c041e12ed01c1a4331a6572bda4b912c2a) Set net7.0 as primary TFM for BenchmarkDotNet.Samples (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [86f212](https://github.com/dotnet/BenchmarkDotNet/commit/86f212b79e297d87d3942e4c50130fe6e214f3c8) Support macOS 13 (Ventura) in OsBrandStringHelper (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [0c2699](https://github.com/dotnet/BenchmarkDotNet/commit/0c26996ea685a99068aca71e7ae547b0851d3c64) Support Windows 22H2 in OsBrandStringHelper (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [e715d5](https://github.com/dotnet/BenchmarkDotNet/commit/e715d5bb63984fca65120d9a497f7d16395f9e5b) improve JitStatsDiagnoser based on feedback from @kouvel (#2246) (by [@adamsitnik](https://github.com/adamsitnik)) +* [a992b5](https://github.com/dotnet/BenchmarkDotNet/commit/a992b57490e844acf587bc2e01b08a7040dbc8e2) UnresolvedDiagnoser needs to have an Id as well, otherwise CompositeDiagnoser... (by [@adamsitnik](https://github.com/adamsitnik)) +* [512413](https://github.com/dotnet/BenchmarkDotNet/commit/512413ceb24077154bdf6d6306138accffe64c7a) Add JitStatsDiagnoserAttribute (#2250) (by [@KeterSCP](https://github.com/KeterSCP)) +* [5cd288](https://github.com/dotnet/BenchmarkDotNet/commit/5cd288996ca13292fcf638be299c097a600aea7b) Enabled strong-named assemblies on all OS, fix #2258 (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [615384](https://github.com/dotnet/BenchmarkDotNet/commit/615384d2553434d7f35c03ab3174d761f82c6c2d) Removed deprecated InProcessToolchain. (#2248) (by [@timcassell](https://github.com/timcassell)) +* [d3fbc0](https://github.com/dotnet/BenchmarkDotNet/commit/d3fbc03d6dabeb52f23c6b7e50287150e66957cc) Keep generated files when MSBuild bin log is requested (#2254) (by [@adamsitnik](https://github.com/adamsitnik)) +* [ff5dbe](https://github.com/dotnet/BenchmarkDotNet/commit/ff5dbe662478f547e4be8d734eaeb6a106f40875) Don't hold onto references in Consumer (#2191) (by [@timcassell](https://github.com/timcassell)) +* [59e17f](https://github.com/dotnet/BenchmarkDotNet/commit/59e17fc30b85439072dd070007a308be9fe67c18) Bump Cake: 2.0.0->3.0.0 (#2267) (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [f76c68](https://github.com/dotnet/BenchmarkDotNet/commit/f76c6829826518f43b4e79d26d34a2133109bd61) Introduce MockToolchain (#2178) (by [@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* [9e88e4](https://github.com/dotnet/BenchmarkDotNet/commit/9e88e47a63836132ae1f8a0d816a9c21b83d7878) bump SDK version to pick up .NET Runtime fix that should fix disassembler tes... (by [@adamsitnik](https://github.com/adamsitnik)) + +## Contributors (4) + +* Adam Sitnik ([@adamsitnik](https://github.com/adamsitnik)) +* Andrey Akinshin ([@AndreyAkinshin](https://github.com/AndreyAkinshin)) +* Sergiusz Zalewski ([@KeterSCP](https://github.com/KeterSCP)) +* Tim Cassell ([@timcassell](https://github.com/timcassell)) + +Thank you very much! + diff --git a/docs/_changelog/footer/v0.13.5.md b/docs/_changelog/footer/v0.13.5.md new file mode 100644 index 0000000000..ff8b55bb01 --- /dev/null +++ b/docs/_changelog/footer/v0.13.5.md @@ -0,0 +1,10 @@ +_Date: TBA_ + +_Milestone: [v0.13.5](https://github.com/dotnet/BenchmarkDotNet/issues?q=milestone%3Av0.13.5)_ +([List of commits](https://github.com/dotnet/BenchmarkDotNet/compare/v0.13.4...v0.13.5)) + +_NuGet Packages:_ +* https://www.nuget.org/packages/BenchmarkDotNet/0.13.5 +* https://www.nuget.org/packages/BenchmarkDotNet.Diagnostics.Windows/0.13.5 +* https://www.nuget.org/packages/BenchmarkDotNet.Annotations/0.13.5 +* https://www.nuget.org/packages/BenchmarkDotNet.Templates/0.13.5 \ No newline at end of file diff --git a/docs/_changelog/full.md b/docs/_changelog/full.md index 06f7b67eeb..30df9a5d9a 100644 --- a/docs/_changelog/full.md +++ b/docs/_changelog/full.md @@ -4,6 +4,7 @@ uid: changelog.full # Full ChangeLog +[!include[v0.13.5](v0.13.5.md)] [!include[v0.13.4](v0.13.4.md)] [!include[v0.13.3](v0.13.3.md)] [!include[v0.13.2](v0.13.2.md)] diff --git a/docs/_changelog/header/v0.13.5.md b/docs/_changelog/header/v0.13.5.md new file mode 100644 index 0000000000..c3915a4f6d --- /dev/null +++ b/docs/_changelog/header/v0.13.5.md @@ -0,0 +1,34 @@ +## Highlights + +* Improved `JitStatsDiagnoser`. + This diagnoser was added in v0.13.4, it shows various stats from the JIT compiler that were collected during entire benchmark run + (amount of JITted methods, + amount of [tiered methods](https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-0#tiered-compilation), + how much memory JIT allocated during the benchmark). + In this release, we improved metric collection + ([#2246](https://github.com/dotnet/BenchmarkDotNet/pull/2246), + [e715d5](https://github.com/dotnet/BenchmarkDotNet/commit/e715d5bb63984fca65120d9a497f7d16395f9e5b)) + and added the `[JitStatsDiagnoser]` attribute + ([#2250](https://github.com/dotnet/BenchmarkDotNet/pull/2250) + [512413](https://github.com/dotnet/BenchmarkDotNet/commit/512413ceb24077154bdf6d6306138accffe64c7a)). +* Enable strong-named assemblies in the released NuGet packages + [#2258](https://github.com/dotnet/BenchmarkDotNet/issues/2258) + [#2263](https://github.com/dotnet/BenchmarkDotNet/pull/2263) + [5cd288](https://github.com/dotnet/BenchmarkDotNet/commit/5cd288996ca13292fcf638be299c097a600aea7b) +* Avoid keeping referenced values returned from a benchmark in memory + [#1942](https://github.com/dotnet/BenchmarkDotNet/issues/1942) + [#2191](https://github.com/dotnet/BenchmarkDotNet/pull/2191) + [ff5dbe](https://github.com/dotnet/BenchmarkDotNet/commit/ff5dbe662478f547e4be8d734eaeb6a106f40875) +* Keep generated files when MSBuild bin log is requested + [#2252](https://github.com/dotnet/BenchmarkDotNet/issues/2252) + [#2254](https://github.com/dotnet/BenchmarkDotNet/pull/2254) + [d3fbc0](https://github.com/dotnet/BenchmarkDotNet/commit/d3fbc03d6dabeb52f23c6b7e50287150e66957cc) +* Add `Id` for `UnresolvedDiagnoser` (an exception fix) + [#2251](https://github.com/dotnet/BenchmarkDotNet/pull/2251) + [a992b5](https://github.com/dotnet/BenchmarkDotNet/commit/a992b57490e844acf587bc2e01b08a7040dbc8e2) +* Add brand names for Windows 22H2 and macOS 13 + [86f212](https://github.com/dotnet/BenchmarkDotNet/commit/86f212b79e297d87d3942e4c50130fe6e214f3c8) + [0c2699](https://github.com/dotnet/BenchmarkDotNet/commit/0c26996ea685a99068aca71e7ae547b0851d3c64) +* Remove deprecated `InProcessToolchain` + [#2248](https://github.com/dotnet/BenchmarkDotNet/pull/2248) + [615384](https://github.com/dotnet/BenchmarkDotNet/commit/615384d2553434d7f35c03ab3174d761f82c6c2d) diff --git a/docs/_changelog/index.md b/docs/_changelog/index.md index 9495dc9da6..70164bbfa3 100644 --- a/docs/_changelog/index.md +++ b/docs/_changelog/index.md @@ -4,6 +4,7 @@ uid: changelog # ChangeLog +* @changelog.v0.13.5 * @changelog.v0.13.4 * @changelog.v0.13.3 * @changelog.v0.13.2 diff --git a/docs/changelog/toc.yml b/docs/changelog/toc.yml index 58da12e376..cf5f2136c1 100644 --- a/docs/changelog/toc.yml +++ b/docs/changelog/toc.yml @@ -1,3 +1,5 @@ +- name: v0.13.5 + href: v0.13.5.md - name: v0.13.4 href: v0.13.4.md - name: v0.13.3 diff --git a/docs/index.md b/docs/index.md index b4c77ae984..3983fab39b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -33,7 +33,7 @@ It's no harder than writing unit tests! Under the hood, it performs a lot of [magic](#Automation) that guarantees [reliable and precise](#Reliability) results thanks to the [perfolizer](https://github.com/AndreyAkinshin/perfolizer) statistical engine. BenchmarkDotNet protects you from popular benchmarking mistakes and warns you if something is wrong with your benchmark design or obtained measurements. The results are presented in a [user-friendly](#Friendliness) form that highlights all the important facts about your experiment. -The library is adopted by [13800+ projects](#who-uses-benchmarkdotnet) including .NET Runtime and supported by the [.NET Foundation](https://dotnetfoundation.org). +The library is adopted by [14300+ projects](#who-uses-benchmarkdotnet) including .NET Runtime and supported by the [.NET Foundation](https://dotnetfoundation.org). It's [easy](#Simplicity) to start writing benchmarks, check out an example (copy-pastable version is [here](https://benchmarkdotnet.org/articles/guides/getting-started.html)): @@ -235,7 +235,7 @@ If you don't customize the summary view, ## Who uses BenchmarkDotNet? Everyone! -BenchmarkDotNet is already adopted by more than [13800+](https://github.com/dotnet/BenchmarkDotNet/network/dependents?package_id=UGFja2FnZS0xNTY3MzExMzE%3D) projects including +BenchmarkDotNet is already adopted by more than [14300+](https://github.com/dotnet/BenchmarkDotNet/network/dependents?package_id=UGFja2FnZS0xNTY3MzExMzE%3D) projects including [dotnet/performance](https://github.com/dotnet/performance) (reference benchmarks for all .NET Runtimes), [dotnet/runtime](https://github.com/dotnet/runtime/issues?utf8=%E2%9C%93&q=BenchmarkDotNet) (.NET runtime and libraries), [Roslyn](https://github.com/dotnet/roslyn/search?q=BenchmarkDotNet&type=Issues&utf8=✓) (C# and Visual Basic compiler), @@ -270,9 +270,9 @@ BenchmarkDotNet is already adopted by more than [13800+](https://github.com/dotn [TensorFlow.NET](https://github.com/SciSharp/TensorFlow.NET/tree/master/src/TensorFlowNet.Benchmarks), [Apache Thrift](https://github.com/apache/thrift/tree/master/lib/netstd/Benchmarks/Thrift.Benchmarks). On GitHub, you can find - 11400+ [issues](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=created&type=Issues&utf8=✓), - 4900+ [commits](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=committer-date&type=Commits&utf8=✓), and - 1,550,000+ [files](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=indexed&type=Code&utf8=✓) + 12600+ [issues](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=created&type=Issues&utf8=✓), + 5200+ [commits](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=committer-date&type=Commits&utf8=✓), and + 1,600,000+ [files](https://github.com/search?o=desc&q=BenchmarkDotNet+-repo:dotnet%2FBenchmarkDotNet&s=indexed&type=Code&utf8=✓) that involve BenchmarkDotNet. ## Learn more about benchmarking