Skip to content

Commit 483b7eb

Browse files
committed
reworked existing
1 parent 18334e6 commit 483b7eb

5 files changed

+54
-5
lines changed

tests/Performance/ReadOnlySpan_Split_Any_Benchmark.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,27 @@ public class ReadOnlySpan_Split_Any_Benchmark
1111
public int Split_Any_ReadOnlySpan(ReadOnlySpan<char> value, char[] delimiters)
1212
{
1313
int count = 0;
14+
1415
foreach(ReadOnlySpan<char> part in value.SplitAny(delimiters))
1516
{
1617
count += part.Length;
1718
}
19+
1820
return count;
1921
}
2022

2123
[Benchmark(Baseline = true)]
2224
[ArgumentsSource(nameof(GetArgsWithDelimiter))]
2325
public int Split_Any_String(string value, char[] delimiters)
2426
{
25-
return value.Split(delimiters).Length;
27+
int count = 0;
28+
29+
foreach(string part in value.Split(delimiters))
30+
{
31+
count += part.Length;
32+
}
33+
34+
return count;
2635
}
2736

2837
public IEnumerable<object[]> GetArgsWithDelimiter()

tests/Performance/ReadOnlySpan_Split_Benchmark.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,27 @@ public class ReadOnlySpan_Split_Benchmark
1111
public int Split_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter)
1212
{
1313
int count = 0;
14+
1415
foreach(ReadOnlySpan<char> part in value.Split(delimiter))
1516
{
1617
count += part.Length;
1718
}
19+
1820
return count;
1921
}
2022

2123
[Benchmark(Baseline = true)]
2224
[ArgumentsSource(nameof(GetArgsWithDelimiter))]
2325
public int Split_String(string value, char delimiter)
2426
{
25-
return value.Split(delimiter).Length;
27+
int count = 0;
28+
29+
foreach(string part in value.Split(delimiter))
30+
{
31+
count += part.Length;
32+
}
33+
34+
return count;
2635
}
2736

2837
public IEnumerable<object[]> GetArgsWithDelimiter()

tests/Performance/ReadOnlySpan_Split_Count_Benchmark.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,40 @@ public class ReadOnlySpan_Split_Count_Benchmark
1111
public int Split_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count)
1212
{
1313
int length = 0;
14+
1415
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count))
1516
{
1617
length += part.Length;
1718
}
19+
1820
return length;
1921
}
2022

2123
[Benchmark(Baseline = true)]
2224
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
2325
public int Split_String(string value, char delimiter, int count)
2426
{
25-
return value.Split(delimiter, count).Length;
27+
int length = 0;
28+
29+
foreach(string part in value.Split(delimiter, count))
30+
{
31+
length += part.Length;
32+
}
33+
34+
return length;
2635
}
2736

2837
[Benchmark]
2938
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
3039
public int Split_CutLastElements_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count)
3140
{
3241
int length = 0;
42+
3343
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, CountExceedingBehaviour.CutLastElements))
3444
{
3545
length += part.Length;
3646
}
47+
3748
return length;
3849
}
3950

tests/Performance/ReadOnlySpan_Split_Count_StringSplitOptions_Benchmark.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,29 +11,40 @@ public class ReadOnlySpan_Split_Count_StringSplitOptions_Benchmark
1111
public int Split_Count_StringSplitOptions_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count, StringSplitOptions options)
1212
{
1313
int length = 0;
14+
1415
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, options))
1516
{
1617
length += part.Length;
1718
}
19+
1820
return length;
1921
}
2022

2123
[Benchmark(Baseline = true)]
2224
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
2325
public int Split_Count_StringSplitOptions_String(string value, char delimiter, int count, StringSplitOptions options)
2426
{
25-
return value.Split(delimiter, count, options).Length;
27+
int length = 0;
28+
29+
foreach(string part in value.Split(delimiter, count, options))
30+
{
31+
length += part.Length;
32+
}
33+
34+
return length;
2635
}
2736

2837
[Benchmark]
2938
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
3039
public int Split_Count_StringSplitOptions_CountExceedingBehaviour_CutLastElements_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count, StringSplitOptions options)
3140
{
3241
int length = 0;
42+
3343
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, options, CountExceedingBehaviour.CutLastElements))
3444
{
3545
length += part.Length;
3646
}
47+
3748
return length;
3849
}
3950

tests/Performance/ReadOnlySpan_Split_StringSplitOptions_Benchmark.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,27 @@ public class ReadOnlySpan_Split_StringSplitOptions_Benchmark
1111
public int Split_StringSplitOptions_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, StringSplitOptions options)
1212
{
1313
int count = 0;
14+
1415
foreach(ReadOnlySpan<char> part in value.Split(delimiter, options))
1516
{
1617
count += part.Length;
1718
}
19+
1820
return count;
1921
}
2022

2123
[Benchmark(Baseline = true)]
2224
[ArgumentsSource(nameof(GetArgsWithDelimiterAndStringSplitOptions))]
2325
public int Split_StringSplitOptions_String(string value, char delimiter, StringSplitOptions options)
2426
{
25-
return value.Split(delimiter, options).Length;
27+
int count = 0;
28+
29+
foreach(string part in value.Split(delimiter, options))
30+
{
31+
count += part.Length;
32+
}
33+
34+
return count;
2635
}
2736

2837
public IEnumerable<object[]> GetArgsWithDelimiterAndStringSplitOptions()

0 commit comments

Comments
 (0)