A game framework written with osu! in mind.
at master 2.6 kB view raw
1// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence. 2// See the LICENCE file in the repository root for full licence text. 3 4using System; 5using BenchmarkDotNet.Attributes; 6using osu.Framework.Localisation; 7 8namespace osu.Framework.Benchmarks 9{ 10 [MemoryDiagnoser] 11 public class BenchmarkLocalisableString 12 { 13 private string string1; 14 private string string2; 15 private LocalisableString localisableString1; 16 private LocalisableString localisableString2; 17 private LocalisableString romanisableString1; 18 private LocalisableString romanisableString2; 19 private LocalisableString translatableString1; 20 private LocalisableString translatableString2; 21 private LocalisableString formattableString1; 22 private LocalisableString formattableString2; 23 24 [GlobalSetup] 25 public void GlobalSetup() 26 { 27 string1 = "a"; 28 string2 = "b"; 29 localisableString1 = "a"; 30 localisableString2 = "b"; 31 romanisableString1 = new RomanisableString("a", "b"); 32 romanisableString2 = new RomanisableString("c", "d"); 33 translatableString1 = new TranslatableString("e", "f"); 34 translatableString2 = new TranslatableString("g", "h"); 35 formattableString1 = new LocalisableFormattableString(1.23, "N0"); 36 formattableString2 = new LocalisableFormattableString(4.56, "N1"); 37 } 38 39 [Benchmark] 40 public bool BenchmarkStringEquals() => string1.Equals(string2, StringComparison.Ordinal); 41 42 [Benchmark] 43 public bool BenchmarkLocalisableStringEquals() => localisableString1.Equals(localisableString2); 44 45 [Benchmark] 46 public bool BenchmarkRomanisableEquals() => romanisableString1.Equals(romanisableString2); 47 48 [Benchmark] 49 public bool BenchmarkTranslatableEquals() => translatableString1.Equals(translatableString2); 50 51 [Benchmark] 52 public bool BenchmarkFormattableEquals() => formattableString1.Equals(formattableString2); 53 54 [Benchmark] 55 public int BenchmarkStringGetHashCode() => string1.GetHashCode(); 56 57 [Benchmark] 58 public int BenchmarkLocalisableStringGetHashCode() => localisableString1.GetHashCode(); 59 60 [Benchmark] 61 public int BenchmarkRomanisableGetHashCode() => romanisableString1.GetHashCode(); 62 63 [Benchmark] 64 public int BenchmarkTranslatableGetHashCode() => translatableString1.GetHashCode(); 65 66 [Benchmark] 67 public int BenchmarkFormattableGetHashCode() => formattableString1.GetHashCode(); 68 } 69}