Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Collections.Immutable;
- using System.Linq;
- using BenchmarkDotNet.Attributes;
- using BenchmarkDotNet.Running;
- using JetBrains.Annotations;
- // ReSharper disable LoopCanBeConvertedToQuery
- // ReSharper disable ForCanBeConvertedToForeach
- namespace ClassLibrary1
- {
- public class ArrayBenchmark
- {
- private readonly ImmutableArray<int> _immutableArray;
- [NotNull] private readonly int[] _array;
- [NotNull] private readonly List<int> _list;
- public ArrayBenchmark()
- {
- var random = new Random(12345);
- var data = Enumerable.Range(0, 10000).Select(i => random.Next()).ToArray();
- _immutableArray = data.ToImmutableArray();
- _array = data.ToArray();
- _list = data.ToList();
- }
- [Benchmark]
- public int ImmutableArrayForeach()
- {
- var sum = 0;
- foreach (var i in _immutableArray)
- {
- sum += i;
- }
- return sum;
- }
- [Benchmark]
- public int ImmutableArrayFor()
- {
- var sum = 0;
- for (var i = 0; i < _immutableArray.Length; i++)
- {
- sum += _immutableArray[i];
- }
- return sum;
- }
- [Benchmark]
- public int ArrayForeach()
- {
- var sum = 0;
- foreach (var i in _array)
- {
- sum += i;
- }
- return sum;
- }
- [Benchmark]
- public int ArrayFor()
- {
- var sum = 0;
- for (var i = 0; i < _array.Length; i++)
- {
- sum += _array[i];
- }
- return sum;
- }
- [Benchmark]
- public int ListForeach()
- {
- var sum = 0;
- foreach (var i in _list)
- {
- sum += i;
- }
- return sum;
- }
- [Benchmark]
- public int ListFor()
- {
- var sum = 0;
- for (var i = 0; i < _list.Count; i++)
- {
- sum += _list[i];
- }
- return sum;
- }
- }
- public class Program
- {
- public static void Main()
- {
- BenchmarkRunner.Run<ArrayBenchmark>();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement