Skip to content

Instantly share code, notes, and snippets.

@svick
Last active July 25, 2019 16:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save svick/f1e1e0926ce4fd7f4d63dbeb861cc807 to your computer and use it in GitHub Desktop.
Save svick/f1e1e0926ce4fd7f4d63dbeb861cc807 to your computer and use it in GitHub Desktop.
>dotnet run -p ..\..\tools\ResultsComparer\ResultsComparer.csproj --base .\before\ --diff .\after\ --threshold 3%
summary:
better: 65, geomean: 1.629
worse: 10, geomean: 1.548
total diff: 75
Slower diff/base Base Median (ns) Diff Median (ns) Modality
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 90, Comparer: Ordinal, Collisions: True) 2.95 12224.78 36073.41 multimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 110, Comparer: OrdinalIgnoreCase, Collisions: True) 1.68 1.17 1.96
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 110, Comparer: Ordinal, Collisions: False) 1.65 1.62 2.68 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10000, Comparer: Ordinal, Collisions: False) 1.65 1.66 2.74 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 90, Comparer: Ordinal, Collisions: False) 1.63 1.71 2.79 multimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 90, Comparer: Ordinal, Collisions: True) 1.57 1.75 2.75 bimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 1000, Comparer: OrdinalIgnoreCase, Collisions: True) 1.49 1.33 1.97
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10000, Comparer: Ordinal, Collisions: True) 1.29 1.50 1.94
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 110, Comparer: Default, Collisions: True) 1.10 7.00 7.70 multimodal
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 110, Comparer: Ordinal, Collisions: True) 1.09 2754.75 2990.17
Faster base/diff Base Median (ns) Diff Median (ns) Modality
System.Collections.Tests.Perf_Dictionary_String1.Construct(Comparer: Default) 5.18 146.30 28.24 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10, Comparer: Default, Collisions: False) 4.51 12.03 2.67 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10, Comparer: Default, Collisions: True) 4.44 12.51 2.82 multimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 1, Comparer: Default, Collisions: False) 4.41 10.29 2.34 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 1, Comparer: Default, Collisions: True) 3.63 8.35 2.30 bimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10000, Comparer: Default, Collisions: False) 3.55 9.55 2.69 bimodal
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10000, Comparer: Ordinal, Collisions: False) 3.25 122334900.00 37593325.00
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 1000, Comparer: Ordinal, Collisions: False) 3.10 1158135.60 373236.15
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 90, Comparer: Default, Collisions: True) 3.05 8.02 2.63 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 90, Comparer: Default, Collisions: False) 2.92 7.95 2.72 multimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 1000, Comparer: Default, Collisions: False) 2.87 7.68 2.67 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 110, Comparer: Default, Collisions: False) 2.82 7.86 2.79 several?
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 1, Comparer: OrdinalIgnoreCase, Collisions: True) 2.47 3.50 1.42
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10, Comparer: OrdinalIgnoreCase, Collisions: True) 2.19 3.17 1.45 bimodal
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 110, Comparer: Ordinal, Collisions: False) 2.19 16759.28 7663.87
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 90, Comparer: Ordinal, Collisions: False) 2.13 11680.69 5485.12
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 1, Comparer: OrdinalIgnoreCase, Collisions: False) 2.07 3.03 1.47 bimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10, Comparer: OrdinalIgnoreCase, Collisions: False) 1.85 3.32 1.80 several?
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10, Comparer: Ordinal, Collisions: False) 1.84 579.21 314.12
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 1, Comparer: OrdinalIgnoreCase, Collisions: False) 1.71 56.06 32.82 several?
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10, Comparer: OrdinalIgnoreCase, Collisions: True) 1.70 2334.81 1376.08 several?
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 1, Comparer: Ordinal, Collisions: True) 1.67 34.62 20.78 bimodal
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10, Comparer: Default, Collisions: False) 1.60 306.72 191.45 bimodal
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10, Comparer: Default, Collisions: True) 1.59 1018.17 638.71 bimodal
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10, Comparer: OrdinalIgnoreCase, Collisions: False) 1.58 350.69 222.05 bimodal
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 1, Comparer: Ordinal, Collisions: True) 1.54 3.40 2.21 bimodal
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 1, Comparer: OrdinalIgnoreCase, Collisions: True) 1.51 48.73 32.37 several?
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10, Comparer: OrdinalIgnoreCase, Collisions: False) 1.50 655.13 436.16
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10, Comparer: Ordinal, Collisions: False) 1.50 294.04 196.12 bimodal
System.Collections.Tests.Perf_Dictionary_String1.Construct(Comparer: Ordinal) 1.44 39.49 27.39 multimodal
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 1, Comparer: Ordinal, Collisions: True) 1.43 45.94 32.17 several?
System.Collections.Tests.Perf_Dictionary_String1.Construct(Comparer: OrdinalIgnoreCase) 1.42 35.40 24.84
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10, Comparer: OrdinalIgnoreCase, Collisions: True) 1.41 309.50 220.01 bimodal
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 1, Comparer: Ordinal, Collisions: False) 1.40 28.54 20.40 multimodal
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10, Comparer: Default, Collisions: False) 1.39 429.83 308.80
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10, Comparer: Default, Collisions: True) 1.39 326.57 234.62 bimodal
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 90, Comparer: Ordinal, Collisions: True) 1.36 2224.58 1629.97
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 90, Comparer: Default, Collisions: False) 1.36 7375.03 5422.16 several?
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 1, Comparer: Default, Collisions: False) 1.34 27.74 20.66 multimodal
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 1, Comparer: Ordinal, Collisions: False) 1.33 43.46 32.78 several?
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 1, Comparer: OrdinalIgnoreCase, Collisions: True) 1.30 31.91 24.57
System.Collections.Tests.Perf_Dictionary_String2.GetComparer(N: 10, Comparer: Ordinal, Collisions: False) 1.29 3.50 2.71 several?
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10, Comparer: Ordinal, Collisions: True) 1.29 303.26 235.78
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10000, Comparer: Ordinal, Collisions: False) 1.23 429787.34 349694.72
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 110, Comparer: OrdinalIgnoreCase, Collisions: True) 1.23 71876.75 58505.34 multimodal
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 1, Comparer: Default, Collisions: True) 1.19 24.55 20.64
System.Collections.Tests.Perf_Dictionary_String3.Construct 1.19 18.41 15.49 bimodal
System.Collections.Tests.Perf_Dictionary_String4.Construct 1.18 29.12 24.77
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10000, Comparer: OrdinalIgnoreCase, Collisions: True) 1.12 476838.54 424007.59
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 110, Comparer: OrdinalIgnoreCase, Collisions: True) 1.12 3416.24 3043.03 several?
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10000, Comparer: Default, Collisions: False) 1.12 379171.65 339764.87 several?
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10000, Comparer: Default, Collisions: True) 1.11 433650.22 391036.93
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 110, Comparer: Default, Collisions: True) 1.09 3295.45 3012.33 several?
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10000, Comparer: Default, Collisions: True) 1.09 121574125.00 111224100.00
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 110, Comparer: Ordinal, Collisions: True) 1.09 17538.52 16128.80
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10000, Comparer: OrdinalIgnoreCase, Collisions: False) 1.09 139820150.00 128812450.00
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 1000, Comparer: OrdinalIgnoreCase, Collisions: True) 1.08 36414.39 33791.02 several?
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 90, Comparer: OrdinalIgnoreCase, Collisions: False) 1.07 2473.58 2316.67
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 110, Comparer: OrdinalIgnoreCase, Collisions: False) 1.07 20752.09 19443.15
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10000, Comparer: Ordinal, Collisions: True) 1.07 410124.38 384508.07
System.Collections.Tests.Perf_Dictionary_String2.DoesntContainKey(N: 10000, Comparer: OrdinalIgnoreCase, Collisions: False) 1.06 462394.25 434906.07
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 1, Comparer: Default, Collisions: False) 1.06 34.16 32.19
System.Collections.Tests.Perf_Dictionary_String4.ContainsKey 1.05 3109.32 2952.47
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 1000, Comparer: OrdinalIgnoreCase, Collisions: False) 1.05 1390010.17 1323012.55
System.Collections.Tests.Perf_Dictionary_String2.ContainsKey(N: 10000, Comparer: Default, Collisions: False) 1.05 38951741.67 37096150.00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment