Intrinsics Performance

March 30, 2021 ยท View on GitHub

These benchmarks are designed to give an overall impression of a Levenshtein distance solution.

All benchmarks were run with the following configuration:

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.867 (2004/?/20H1)
Intel Core i7-6700HQ CPU 2.60GHz (Skylake), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.201
  [Host]                : .NET Core 5.0.4 (CoreCLR 5.0.421.11614, CoreFX 5.0.421.11614), X64 RyuJIT
  Framework             : .NET Framework 4.8 (4.8.4341.0), X64 RyuJIT
  Core (w/o SSE41)      : .NET Core 5.0.4 (CoreCLR 5.0.421.11614, CoreFX 5.0.421.11614), X64 RyuJIT
  Core (No Intrinsics)  : .NET Core 5.0.4 (CoreCLR 5.0.421.11614, CoreFX 5.0.421.11614), X64 RyuJIT
  Core (w/o AVX2)       : .NET Core 5.0.4 (CoreCLR 5.0.421.11614, CoreFX 5.0.421.11614), X64 RyuJIT
  Core (All Intrinsics) : .NET Core 5.0.4 (CoreCLR 5.0.421.11614, CoreFX 5.0.421.11614), X64 RyuJIT
MethodJobEnvironmentVariablesRuntimeMeanErrorStdDevOp/sCode SizeGen 0Gen 1Gen 2Allocated
QuickenshteinCore (All Intrinsics)Empty.NET Core 5.017.31 ms0.326 ms0.305 ms57.7794925 B---9 B
QuickenshteinCore (w/o AVX2)COMPlus_EnableAVX2=0.NET Core 5.028.94 ms0.539 ms0.504 ms34.5514410 B---9 B
QuickenshteinCore (No Intrinsics)COMPlus_EnableHWIntrinsic=0.NET Core 5.0100.04 ms1.844 ms1.725 ms9.99648 B---307 B
QuickenshteinCore (w/o SSE41)COMPlus_EnableSSE41=0.NET Core 5.0100.52 ms1.468 ms1.373 ms9.94848 B---307 B
QuickenshteinFrameworkEmpty.NET 4.7.2100.77 ms1.484 ms1.316 ms9.9233705 B----