Results Comparer
This simple tool allows for easy comparison of provided benchmark results.
It can be used to compare:
- historical results (eg. before and after my changes)
- results for different OSes (eg. Windows vs Ubuntu)
- results for different CPU architectures (eg. x64 vs ARM64)
- results for different target frameworks (eg. .NET Core 2.1 vs 2.2)
All you need to provide is:
-
--base- path to folder/file with baseline results -
--diff- path to folder/file with diff results -
--threshold- threshold for Statistical Test. Examples: 5%, 10ms, 100ns, 1s
Optional arguments:
-
--top- filter the diff to top/bottomNresults -
--noise- noise threshold for Statistical Test. The difference for 1.0ns and 1.1ns is 10%, but it's just a noise. Examples: 0.5ns 1ns. The default value is 0.3ns. -
--csv- path to exported CSV results. Optional.
Sample: compare the results stored in C:\results\windows vs C:\results\ubuntu using 1% threshold and print only TOP 10.
dotnet run --base "C:\results\windows" --diff "C:\results\ubuntu" --treshold 1% --top 10
Note: the tool supports only *full.json results exported by BenchmarkDotNet. This exporter is enabled by default in this repository.
Sample results
| Slower | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| PerfLabTests.BlockCopyPerf.CallBlockCopy(numElements: 100) | 1.60 | 9.22 | 14.76 | |
| System.Tests.Perf_String.Trim_CharArr(s: "Test", c: [' ', ' ']) | 1.41 | 6.18 | 8.72 |
| Faster | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
|---|---|---|---|---|
| System.Tests.Perf_Array.ArrayCopy3D | 1.31 | 372.71 | 284.73 |
If there is no difference, the results are omitted. If there is no match (we use full benchmark names to match the benchmarks), the results are omitted
Uh oh!
There was an error while loading. Please reload this page.