๐Ÿ“ฆ heaths / StringTokenizer

โ˜… 8 stars โ‘‚ 0 forks ๐Ÿ‘ 8 watching โš–๏ธ MIT License
๐Ÿ“ฅ Clone https://github.com/heaths/StringTokenizer.git
HTTPS git clone https://github.com/heaths/StringTokenizer.git
SSH git clone git@github.com:heaths/StringTokenizer.git
CLI gh repo clone heaths/StringTokenizer
Heath Stewart Heath Stewart Add regex benchmark 83b1a06 4 years ago ๐Ÿ“ History
๐Ÿ“‚ master View all commits โ†’
๐Ÿ“ .vscode
๐Ÿ“„ .editorconfig
๐Ÿ“„ .gitattributes
๐Ÿ“„ .gitignore
๐Ÿ“„ LICENSE.txt
๐Ÿ“„ Program.cs
๐Ÿ“„ README.md
๐Ÿ“„ StringSegment.cs
๐Ÿ“„ StringTokenizer.cs
๐Ÿ“„ README.md

This is a port of StringTokenizer for benchmarking variations and for eventual inclusion as source rather than redistributing an entire assembly.

Benchmarks

BenchmarkDotNet=v0.12.0, OS=Windows 10.0.19042
Intel Core i7-8650U CPU 1.90GHz (Kaby Lake R), 1 CPU, 8 logical and 4 physical cores
.NET Core SDK=5.0.102
  [Host]     : .NET Core 3.1.11 (CoreCLR 4.700.20.56602, CoreFX 4.700.20.56604), X64 RyuJIT
  Job-MQCWDB : .NET Core 3.1.11 (CoreCLR 4.700.20.56602, CoreFX 4.700.20.56604), X64 RyuJIT

Runtime=.NET Core 3.1  Toolchain=netcoreapp3.1

MethodOptionsTextMeanErrorStdDevMedianRatioRatioSDGen 0Gen 1Gen 2Allocated
UsingStringNoneLore(...)qua. [123]930.1 ns52.12 ns152.04 ns847.0 ns1.000.000.2136--896 B
UsingStringTokenizerNoneLore(...)qua. [123]688.1 ns17.39 ns49.33 ns666.4 ns0.750.11----
UsingUnsafeStringTokenizerNoneLore(...)qua. [123]659.4 ns12.90 ns15.36 ns659.2 ns0.610.04----
UsingStringTokenizerSpansNoneLore(...)qua. [123]541.2 ns10.23 ns10.04 ns541.5 ns0.510.03----
UsingRegularExpressionsNoneLore(...)qua. [123]5,562.2 ns121.19 ns157.58 ns5,551.1 ns5.130.321.6022--6712 B
UsingStringNoneLore(...)rum. [445]2,790.2 ns51.11 ns45.31 ns2,784.1 ns1.000.000.7477--3128 B
UsingStringTokenizerNoneLore(...)rum. [445]2,272.3 ns36.86 ns34.48 ns2,272.6 ns0.820.01----
UsingUnsafeStringTokenizerNoneLore(...)rum. [445]2,429.9 ns46.97 ns43.94 ns2,427.2 ns0.870.03----
UsingStringTokenizerSpansNoneLore(...)rum. [445]2,835.0 ns125.87 ns359.13 ns2,860.3 ns0.900.19----
UsingRegularExpressionsNoneLore(...)rum. [445]28,199.3 ns382.81 ns358.08 ns28,127.8 ns10.120.205.7678--24168 B
UsingStringNoneLore(...)mst. [1334]13,865.4 ns252.36 ns236.06 ns13,859.7 ns1.000.002.1973--9240 B
UsingStringTokenizerNoneLore(...)mst. [1334]11,404.0 ns319.27 ns403.78 ns11,277.2 ns0.830.03----
UsingUnsafeStringTokenizerNoneLore(...)mst. [1334]11,732.9 ns231.77 ns266.91 ns11,729.9 ns0.850.02----
UsingStringTokenizerSpansNoneLore(...)mst. [1334]7,443.1 ns489.99 ns1,437.05 ns6,620.8 ns0.670.08----
UsingRegularExpressionsNoneLore(...)mst. [1334]63,548.1 ns1,259.20 ns1,293.10 ns63,199.8 ns4.580.1317.8223--75009 B
UsingStringRemoveEmptyEntriesLore(...)qua. [123]807.8 ns18.20 ns17.03 ns802.0 ns1.000.000.2556--1072 B
UsingStringTokenizerRemoveEmptyEntriesLore(...)qua. [123]707.7 ns13.93 ns14.91 ns702.2 ns0.880.02----
UsingUnsafeStringTokenizerRemoveEmptyEntriesLore(...)qua. [123]735.3 ns14.22 ns16.92 ns733.1 ns0.910.03----
UsingStringTokenizerSpansRemoveEmptyEntriesLore(...)qua. [123]622.2 ns11.68 ns10.92 ns618.6 ns0.770.02----
UsingRegularExpressionsRemoveEmptyEntriesLore(...)qua. [123]5,543.9 ns105.71 ns129.82 ns5,489.2 ns6.920.281.4801--6200 B
UsingStringRemoveEmptyEntriesLore(...)rum. [445]2,952.7 ns57.36 ns56.34 ns2,948.5 ns1.000.000.8850--3704 B
UsingStringTokenizerRemoveEmptyEntriesLore(...)rum. [445]2,915.9 ns71.50 ns87.81 ns2,886.2 ns0.990.03----
UsingUnsafeStringTokenizerRemoveEmptyEntriesLore(...)rum. [445]2,689.1 ns42.84 ns37.97 ns2,681.1 ns0.910.03----
UsingStringTokenizerSpansRemoveEmptyEntriesLore(...)rum. [445]2,275.7 ns70.39 ns204.22 ns2,185.7 ns0.850.05----
UsingRegularExpressionsRemoveEmptyEntriesLore(...)rum. [445]19,532.9 ns389.84 ns571.42 ns19,436.0 ns6.640.255.3406--22376 B
UsingStringRemoveEmptyEntriesLore(...)mst. [1334]9,178.4 ns183.25 ns196.07 ns9,155.4 ns1.000.002.5940--10872 B
UsingStringTokenizerRemoveEmptyEntriesLore(...)mst. [1334]9,116.8 ns219.40 ns194.49 ns9,080.3 ns0.990.03----
UsingUnsafeStringTokenizerRemoveEmptyEntriesLore(...)mst. [1334]8,866.3 ns139.75 ns130.72 ns8,862.6 ns0.970.02----
UsingStringTokenizerSpansRemoveEmptyEntriesLore(...)mst. [1334]6,736.4 ns126.22 ns123.97 ns6,734.0 ns0.730.02----
UsingRegularExpressionsRemoveEmptyEntriesLore(...)mst. [1334]55,075.4 ns461.29 ns408.93 ns54,973.2 ns5.990.1315.0146--62976 B