Skip to content

Instantly share code, notes, and snippets.

@kshyju
Created April 22, 2022 21:31
Show Gist options
  • Save kshyju/dc78a1f5ef9e8da40c1b4985463f79e6 to your computer and use it in GitHub Desktop.
Save kshyju/dc78a1f5ef9e8da40c1b4985463f79e6 to your computer and use it in GitHub Desktop.
StringEqualsBenchmarks
BenchmarkDotNet=v0.13.1, OS=Windows 10.0.22530
Unknown processor
.NET SDK=6.0.202
  [Host]     : .NET 5.0.16 (5.0.1622.16705), X64 RyuJIT
  DefaultJob : .NET 5.0.16 (5.0.1622.16705), X64 RyuJIT

Method Mean Error StdDev Allocated
NoComparisonTypeParam_True 0.5523 ns 0.0453 ns 0.1095 ns -
OrdinalIgnoreCase_True 1.0517 ns 0.0052 ns 0.0043 ns -
Ordinal_True 1.1229 ns 0.0553 ns 0.1039 ns -
NoComparisonTypeParam_False 1.1096 ns 0.0547 ns 0.0749 ns -
OrdinalIgnoreCase_False 3.1827 ns 0.0951 ns 0.1691 ns -
Ordinal_False 2.9720 ns 0.0883 ns 0.1701 ns -
using BenchmarkDotNet.Attributes;
namespace Benchmark_ToListCall
{
[MemoryDiagnoser]
public class StringBenchmarks
{
private string baseUrl;
[GlobalSetup]
public void Init()
{
baseUrl = "MyClass";
}
[Benchmark]
public bool NoComparisonTypeParam_True() => baseUrl.Equals("MyClass");
[Benchmark]
public bool OrdinalIgnoreCase_True() => baseUrl.Equals("MyClass", System.StringComparison.OrdinalIgnoreCase);
[Benchmark]
public bool Ordinal_True() => baseUrl.Equals("MyClass", System.StringComparison.Ordinal);
[Benchmark]
public bool NoComparisonTypeParam_False() => baseUrl.Equals("MyFoo");
[Benchmark]
public bool OrdinalIgnoreCase_False() => baseUrl.Equals("MyFoo", System.StringComparison.OrdinalIgnoreCase);
[Benchmark]
public bool Ordinal_False() => baseUrl.Equals("MyFoo", System.StringComparison.Ordinal);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment