Skip to content

TimurRybakov/ReverseStringBenchmarks

Repository files navigation

ReverseStringBenchmarks

A simple BenchmarkDotNet project that benchmarks different algorithms for string reversion (i.e. 'ABC' -> 'CBA').

Here is some results:


BenchmarkDotNet v0.14.0, Windows 11 (10.0.22631.3737/23H2/2023Update/SunValley3)
Unknown processor
.NET SDK 8.0.307
  [Host]     : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2
  DefaultJob : .NET 8.0.11 (8.0.1124.51707), X64 RyuJIT AVX2


Method InputLength Mean Error StdDev Median Gen0 Gen1 Allocated
PointerReversener 10 7.479 ns 0.1996 ns 0.1770 ns 7.471 ns 0.0029 - 24 B
PointerStringCopyReversener 10 15.412 ns 0.3599 ns 0.3367 ns 15.392 ns 0.0086 - 72 B
StringCreateReversener 10 15.644 ns 0.3462 ns 0.3238 ns 15.680 ns 0.0086 - 72 B
ArrayReversener 10 23.988 ns 0.5143 ns 0.5716 ns 23.949 ns 0.0143 - 120 B
StackSpanReversener 10 26.456 ns 0.5787 ns 0.5413 ns 26.621 ns 0.0086 - 72 B
HeapSpanReversener 10 26.633 ns 0.5834 ns 1.2433 ns 27.142 ns 0.0143 - 120 B
XorReversener 10 30.663 ns 0.6518 ns 0.9756 ns 30.742 ns 0.0143 - 120 B
StringBuilderReversener 10 39.741 ns 0.8418 ns 1.2073 ns 39.724 ns 0.0200 - 168 B
GlobalHeapPointerReversener 10 141.037 ns 2.2652 ns 2.0081 ns 140.796 ns 0.0086 - 72 B
StringCreateReversener 100 26.467 ns 0.5789 ns 0.7109 ns 26.456 ns 0.0296 - 248 B
ArrayReversener 100 39.995 ns 0.9862 ns 2.9078 ns 38.508 ns 0.0564 - 472 B
PointerReversener 100 54.064 ns 0.7378 ns 0.6901 ns 53.934 ns 0.0029 - 24 B
PointerStringCopyReversener 100 66.857 ns 1.1492 ns 0.9596 ns 67.107 ns 0.0296 - 248 B
HeapSpanReversener 100 96.530 ns 1.9932 ns 3.7438 ns 96.041 ns 0.0564 - 472 B
XorReversener 100 133.439 ns 2.3778 ns 2.2242 ns 133.384 ns 0.0563 - 472 B
StackSpanReversener 100 140.190 ns 1.6397 ns 1.5338 ns 139.977 ns 0.0296 - 248 B
StringBuilderReversener 100 150.971 ns 2.4512 ns 2.2928 ns 151.168 ns 0.0620 - 520 B
GlobalHeapPointerReversener 100 483.365 ns 26.7961 ns 78.1655 ns 481.306 ns 0.0296 - 248 B
StringCreateReversener 1000 114.206 ns 2.2787 ns 3.6143 ns 113.107 ns 0.2449 - 2048 B
ArrayReversener 1000 195.152 ns 5.8357 ns 16.9305 ns 190.950 ns 0.4866 0.0017 4072 B
PointerReversener 1000 522.547 ns 4.0495 ns 3.5898 ns 521.754 ns 0.0029 - 24 B
PointerStringCopyReversener 1000 632.353 ns 8.6601 ns 7.6769 ns 634.736 ns 0.2441 - 2048 B
HeapSpanReversener 1000 725.488 ns 13.7403 ns 38.7547 ns 706.105 ns 0.4864 0.0010 4072 B
XorReversener 1000 1,047.343 ns 19.7775 ns 18.4998 ns 1,046.290 ns 0.4864 - 4072 B
StackSpanReversener 1000 1,142.372 ns 22.2800 ns 25.6577 ns 1,141.060 ns 0.2441 - 2048 B
StringBuilderReversener 1000 1,250.211 ns 19.8470 ns 18.5649 ns 1,249.715 ns 0.4921 0.0019 4120 B
GlobalHeapPointerReversener 1000 2,367.298 ns 40.6016 ns 35.9922 ns 2,363.528 ns 0.2441 - 2048 B

About

A simple BenchmarkDotNet project that benchmarks different algorithms for string reversion

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages