Skip to content

Commit cbc035a

Browse files
author
github-actions[bot]
committed
formatted code
1 parent 0e8b3c6 commit cbc035a

9 files changed

+378
-369
lines changed
Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,47 @@
11
using BenchmarkDotNet.Attributes;
22

3-
namespace SpanExtensions.Tests.Performance;
4-
5-
[MemoryDiagnoser(false)]
6-
public class ReadOnlySpan_Split_Benchmark
3+
namespace SpanExtensions.Tests.Performance
74
{
8-
[Benchmark]
9-
[ArgumentsSource(nameof(GetArgsWithDelimiter))]
10-
public int Split_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter)
5+
[MemoryDiagnoser(false)]
6+
public class ReadOnlySpan_Split_Benchmark
117
{
12-
int iterations = 0;
13-
14-
foreach(ReadOnlySpan<char> part in value.Split(delimiter))
8+
[Benchmark]
9+
[ArgumentsSource(nameof(GetArgsWithDelimiter))]
10+
public int Split_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter)
1511
{
16-
iterations++;
17-
}
12+
int iterations = 0;
1813

19-
return iterations;
20-
}
14+
foreach(ReadOnlySpan<char> part in value.Split(delimiter))
15+
{
16+
iterations++;
17+
}
2118

22-
[Benchmark(Baseline = true)]
23-
[ArgumentsSource(nameof(GetArgsWithDelimiter))]
24-
public int Split_String(string value, char delimiter)
25-
{
26-
int iterations = 0;
19+
return iterations;
20+
}
2721

28-
foreach(string part in value.Split(delimiter))
22+
[Benchmark(Baseline = true)]
23+
[ArgumentsSource(nameof(GetArgsWithDelimiter))]
24+
public int Split_String(string value, char delimiter)
2925
{
30-
iterations++;
31-
}
26+
int iterations = 0;
3227

33-
return iterations;
34-
}
28+
foreach(string part in value.Split(delimiter))
29+
{
30+
iterations++;
31+
}
3532

36-
public IEnumerable<object[]> GetArgsWithDelimiter()
37-
{
38-
yield return new object[] { "xyz", 'y' };
39-
yield return new object[] { "abcde", 'c' };
40-
yield return new object[] { "abcdefg", 'd' };
41-
yield return new object[] { "abba", 'b' };
42-
yield return new object[] { "aaa", 'a' };
43-
yield return new object[] { "aba", 'a' };
44-
yield return new object[] { "12131415161718190", '1' };
33+
return iterations;
34+
}
35+
36+
public IEnumerable<object[]> GetArgsWithDelimiter()
37+
{
38+
yield return new object[] { "xyz", 'y' };
39+
yield return new object[] { "abcde", 'c' };
40+
yield return new object[] { "abcdefg", 'd' };
41+
yield return new object[] { "abba", 'b' };
42+
yield return new object[] { "aaa", 'a' };
43+
yield return new object[] { "aba", 'a' };
44+
yield return new object[] { "12131415161718190", '1' };
45+
}
4546
}
4647
}
Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,59 @@
11
using BenchmarkDotNet.Attributes;
22

3-
namespace SpanExtensions.Tests.Performance;
4-
5-
[MemoryDiagnoser(false)]
6-
public class ReadOnlySpan_Split_Count_Benchmark
3+
namespace SpanExtensions.Tests.Performance
74
{
8-
[Benchmark]
9-
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
10-
public int Split_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count)
5+
[MemoryDiagnoser(false)]
6+
public class ReadOnlySpan_Split_Count_Benchmark
117
{
12-
int iterations = 0;
13-
14-
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count))
8+
[Benchmark]
9+
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
10+
public int Split_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count)
1511
{
16-
iterations++;
17-
}
12+
int iterations = 0;
1813

19-
return iterations;
20-
}
14+
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count))
15+
{
16+
iterations++;
17+
}
2118

22-
[Benchmark(Baseline = true)]
23-
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
24-
public int Split_String(string value, char delimiter, int count)
25-
{
26-
int iterations = 0;
19+
return iterations;
20+
}
2721

28-
foreach(string part in value.Split(delimiter, count))
22+
[Benchmark(Baseline = true)]
23+
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
24+
public int Split_String(string value, char delimiter, int count)
2925
{
30-
iterations++;
31-
}
26+
int iterations = 0;
3227

33-
return iterations;
34-
}
28+
foreach(string part in value.Split(delimiter, count))
29+
{
30+
iterations++;
31+
}
3532

36-
[Benchmark]
37-
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
38-
public int Split_CutLastElements_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count)
39-
{
40-
int iterations = 0;
33+
return iterations;
34+
}
4135

42-
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, CountExceedingBehaviour.CutRemainingElements))
36+
[Benchmark]
37+
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCount))]
38+
public int Split_CutLastElements_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count)
4339
{
44-
iterations++;
45-
}
40+
int iterations = 0;
4641

47-
return iterations;
48-
}
42+
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, CountExceedingBehaviour.CutRemainingElements))
43+
{
44+
iterations++;
45+
}
4946

50-
public IEnumerable<object[]> GetArgsWithDelimiterAndCount()
51-
{
52-
yield return ["xyz", 'y', 1];
53-
yield return ["aba", 'a', 2];
54-
yield return ["12131415161718190", '1', 3];
55-
yield return ["12131415161718190", '1', 2];
56-
yield return ["12131415161718190", '1', 7];
47+
return iterations;
48+
}
49+
50+
public IEnumerable<object[]> GetArgsWithDelimiterAndCount()
51+
{
52+
yield return ["xyz", 'y', 1];
53+
yield return ["aba", 'a', 2];
54+
yield return ["12131415161718190", '1', 3];
55+
yield return ["12131415161718190", '1', 2];
56+
yield return ["12131415161718190", '1', 7];
57+
}
5758
}
5859
}
Lines changed: 56 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,73 @@
11
using BenchmarkDotNet.Attributes;
22

3-
namespace SpanExtensions.Tests.Performance;
4-
5-
[MemoryDiagnoser(false)]
6-
public class ReadOnlySpan_Split_Count_StringSplitOptions_Benchmark
3+
namespace SpanExtensions.Tests.Performance
74
{
8-
[Benchmark]
9-
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
10-
public int Split_Count_StringSplitOptions_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count, StringSplitOptions options)
5+
[MemoryDiagnoser(false)]
6+
public class ReadOnlySpan_Split_Count_StringSplitOptions_Benchmark
117
{
12-
int iterations = 0;
13-
14-
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, options))
8+
[Benchmark]
9+
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
10+
public int Split_Count_StringSplitOptions_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count, StringSplitOptions options)
1511
{
16-
iterations++;
17-
}
12+
int iterations = 0;
1813

19-
return iterations;
20-
}
14+
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, options))
15+
{
16+
iterations++;
17+
}
2118

22-
[Benchmark(Baseline = true)]
23-
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
24-
public int Split_Count_StringSplitOptions_String(string value, char delimiter, int count, StringSplitOptions options)
25-
{
26-
int iterations = 0;
19+
return iterations;
20+
}
2721

28-
foreach(string part in value.Split(delimiter, count, options))
22+
[Benchmark(Baseline = true)]
23+
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
24+
public int Split_Count_StringSplitOptions_String(string value, char delimiter, int count, StringSplitOptions options)
2925
{
30-
iterations++;
31-
}
26+
int iterations = 0;
3227

33-
return iterations;
34-
}
28+
foreach(string part in value.Split(delimiter, count, options))
29+
{
30+
iterations++;
31+
}
3532

36-
[Benchmark]
37-
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
38-
public int Split_Count_StringSplitOptions_CountExceedingBehaviour_CutLastElements_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count, StringSplitOptions options)
39-
{
40-
int iterations = 0;
33+
return iterations;
34+
}
4135

42-
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, options, CountExceedingBehaviour.CutRemainingElements))
36+
[Benchmark]
37+
[ArgumentsSource(nameof(GetArgsWithDelimiterAndCountAndStringSplitOptions))]
38+
public int Split_Count_StringSplitOptions_CountExceedingBehaviour_CutLastElements_ReadOnlySpan(ReadOnlySpan<char> value, char delimiter, int count, StringSplitOptions options)
4339
{
44-
iterations++;
45-
}
40+
int iterations = 0;
4641

47-
return iterations;
48-
}
42+
foreach(ReadOnlySpan<char> part in value.Split(delimiter, count, options, CountExceedingBehaviour.CutRemainingElements))
43+
{
44+
iterations++;
45+
}
4946

50-
public IEnumerable<object[]> GetArgsWithDelimiterAndCountAndStringSplitOptions()
51-
{
52-
yield return new object[] { "12131415161718190", '1', 3, StringSplitOptions.None };
53-
yield return new object[] { "12131415161718190", '1', 2, StringSplitOptions.None };
54-
yield return ["abba", 'b', 4, StringSplitOptions.None];
55-
yield return ["aaa", 'a', 1, StringSplitOptions.None];
56-
yield return ["aba", 'a', 10, StringSplitOptions.None];
57-
yield return ["12131415161718190", '1', 12, StringSplitOptions.None];
58-
yield return [" xy z", 'y', 2, StringSplitOptions.TrimEntries];
59-
yield return ["a bcd e", 'c', 1, StringSplitOptions.TrimEntries];
60-
yield return [" ab cdef g ", 'd', 4, StringSplitOptions.TrimEntries];
61-
yield return ["abb", 'b', 1, StringSplitOptions.RemoveEmptyEntries];
62-
yield return ["abb", 'b', 2, StringSplitOptions.RemoveEmptyEntries];
63-
yield return ["aaa", 'a', 1, StringSplitOptions.RemoveEmptyEntries];
64-
yield return ["aaa", 'a', 2, StringSplitOptions.RemoveEmptyEntries];
65-
yield return ["aba ", 'a', 1, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
66-
yield return ["aba ", 'a', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
67-
yield return ["aba ", 'a', 3, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
68-
yield return ["1 13141516171 190", '1', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
69-
yield return ["1 131 151 171 190", '1', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
70-
yield return ["1131151171 190", '1', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
47+
return iterations;
48+
}
49+
50+
public IEnumerable<object[]> GetArgsWithDelimiterAndCountAndStringSplitOptions()
51+
{
52+
yield return new object[] { "12131415161718190", '1', 3, StringSplitOptions.None };
53+
yield return new object[] { "12131415161718190", '1', 2, StringSplitOptions.None };
54+
yield return ["abba", 'b', 4, StringSplitOptions.None];
55+
yield return ["aaa", 'a', 1, StringSplitOptions.None];
56+
yield return ["aba", 'a', 10, StringSplitOptions.None];
57+
yield return ["12131415161718190", '1', 12, StringSplitOptions.None];
58+
yield return [" xy z", 'y', 2, StringSplitOptions.TrimEntries];
59+
yield return ["a bcd e", 'c', 1, StringSplitOptions.TrimEntries];
60+
yield return [" ab cdef g ", 'd', 4, StringSplitOptions.TrimEntries];
61+
yield return ["abb", 'b', 1, StringSplitOptions.RemoveEmptyEntries];
62+
yield return ["abb", 'b', 2, StringSplitOptions.RemoveEmptyEntries];
63+
yield return ["aaa", 'a', 1, StringSplitOptions.RemoveEmptyEntries];
64+
yield return ["aaa", 'a', 2, StringSplitOptions.RemoveEmptyEntries];
65+
yield return ["aba ", 'a', 1, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
66+
yield return ["aba ", 'a', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
67+
yield return ["aba ", 'a', 3, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
68+
yield return ["1 13141516171 190", '1', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
69+
yield return ["1 131 151 171 190", '1', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
70+
yield return ["1131151171 190", '1', 2, StringSplitOptions.TrimEntries | StringSplitOptions.RemoveEmptyEntries];
71+
}
7172
}
7273
}

0 commit comments

Comments
 (0)