Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using BenchmarkDotNet.Attributes;
- using BenchmarkDotNet.Running;
- namespace ParamsBench;
- public class Program
- {
- [Benchmark]
- public long ParamsArrayForEachTest()
- => ParamsArrayForEach(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40);
- [Benchmark]
- public long ParamsArraySumTest()
- => ParamsArraySum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40);
- [Benchmark]
- public long ParamsROSpanTest()
- => ParamsROSpan(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40);
- [Benchmark]
- public long ParamsIEnumerableForEachTest()
- => ParamsIEnumerableForEach(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40);
- [Benchmark]
- public long ParamsIEnumerableSumTest()
- => ParamsIEnumerableSum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40);
- private static long ParamsArrayForEach(params int[] values)
- {
- var result = 0L;
- foreach (var value in values) result += (long)value * 10;
- return result;
- }
- private static long ParamsArraySum(params int[] values)
- => values.Sum(n => (long)n * 10);
- private static long ParamsROSpan(params ReadOnlySpan<int> values)
- {
- var result = 0L;
- foreach (var value in values) result += (long)value * 10;
- return result;
- }
- private static long ParamsIEnumerableForEach(params IEnumerable<int> values)
- {
- var result = 0L;
- foreach (var value in values) result += (long)value * 10;
- return result;
- }
- private static long ParamsIEnumerableSum(params IEnumerable<int> values)
- => values.Sum(n => (long)n * 10);
- private static void Main()
- {
- _ = BenchmarkRunner.Run<Program>();
- }
- }
Advertisement
Comments
-
Comment was deleted
-
- | Method | Mean | Error | StdDev |
- |----------------------------- |---------:|---------:|---------:|
- | ParamsArrayForEachTest | 25.70 ns | 0.162 ns | 0.151 ns |
- | ParamsArraySumTest | 68.56 ns | 0.199 ns | 0.167 ns |
- | ParamsROSpanTest | 13.71 ns | 0.064 ns | 0.060 ns |
- | ParamsIEnumerableForEachTest | 59.47 ns | 0.193 ns | 0.161 ns |
- | ParamsIEnumerableSumTest | 73.70 ns | 0.049 ns | 0.044 ns |
Add Comment
Please, Sign In to add comment
Advertisement