MeasureMap 2.3.0-RC22

This is a prerelease version of MeasureMap.
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package MeasureMap --version 2.3.0-RC22                
NuGet\Install-Package MeasureMap -Version 2.3.0-RC22                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MeasureMap" Version="2.3.0-RC22" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MeasureMap --version 2.3.0-RC22                
#r "nuget: MeasureMap, 2.3.0-RC22"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MeasureMap as a Cake Addin
#addin nuget:?package=MeasureMap&version=2.3.0-RC22&prerelease

// Install MeasureMap as a Cake Tool
#tool nuget:?package=MeasureMap&version=2.3.0-RC22&prerelease                

MeasureMap

.NET Benchmarking made simple

Build status Build status

NuGet Version NuGet Version

Reliability Rating Quality Gate Status Coverage

Measuremap allows profiling and benchmarking from simple code fragmets to full applications.

Visit https://wickedflame.github.io/MeasureMap/ for the full documentation.

MeasureMap uses the builder pattern and a fluent API to make profiling or benchmarking as simple as possible.

Profiling

Profiles are initiated with ProfilerSession.StartSession().

var result = ProfilerSession.StartSession()
	.Task(() => 
	{
		// This represents the Task that needs testint
		System.Threading.Thread.Sleep(TimeSpan.FromSeconds(0.001));
	})
	.SetIterations(200)
	.Assert(pr => pr.Iterations.Count() == 1)
	.RunSession();

result.Trace();

Assert.IsTrue(result.AverageMilliseconds < 20);

Benchmarking

Benchmarks are a collection of ProfilerSessions. These are initiated and started with the BenchmarkRunner.

var sha256 = SHA256.Create();
var md5 = MD5.Create();

var data = new byte[10000];
new Random(42).NextBytes(data);

var runner = new BenchmarkRunner();
runner.SetIterations(10);
runner.Task("sha256", () => sha256.ComputeHash(data));
runner.Task("Md5", () => md5.ComputeHash(data));

var result = runner.RunSessions();

result.Trace();

MeasureMap Benchmark

Iterations: 10

Summary
Name Avg Time Avg Ticks Total Fastest Slowest Memory Increase
sha256 00:00:00.0000924 924 00:00:00.0009243 776 1471 1392
Md5 00:00:00.0000485 485 00:00:00.0004858 409 534 1392
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.3.0-RC32 52 1/8/2025
2.3.0-RC31 79 12/10/2024
2.3.0-RC22 77 12/6/2024
2.3.0-RC18 74 10/31/2024
2.3.0-RC17 85 10/29/2024
2.3.0-RC11 63 10/28/2024
2.2.1 928 1/30/2023
2.2.0 667 12/19/2022
2.1.0 738 10/31/2022
2.0.2 725 10/20/2022
2.0.1 742 9/28/2022
2.0.0 799 9/5/2022
1.7.0 916 2/22/2022
1.6.2 895 3/31/2021
1.6.1 786 3/23/2021
1.6.0 991 5/19/2020
1.5.2 916 5/6/2020
1.5.1 906 4/21/2020
1.5.0 899 4/20/2020
1.4.0.17 1,060 11/29/2019
1.3.0 899 11/27/2019
1.2.2 1,403 6/12/2018
1.2.1 1,421 4/25/2018
1.2.0 1,364 4/19/2018
1.1.0 1,398 4/17/2018
1.0.0 1,332 4/11/2018
0.2.0 1,344 4/11/2018