View difference between Paste ID: yGJkYpFn and bTbWitZy
SHOW: | | - or go back to the newest paste.
1
using System;
2
using System.Diagnostics;
3
4-
namespace PerfTestCSharp {
4+
namespace NumericPerfTestCSharp {
5
    class Program {
6
        static void Main() {
7
            var collection = new int[100000000];
8
9
            Benchmark(() => SumForEach(collection), "SumForEach");
10
            Benchmark(() => SumFor(collection), "SumFor");
11
            
12
        }
13
        static long SumForEach(int[] collection) {
14
            long sum = 0;
15
            foreach (var i in collection) {
16
                sum += i;
17
            }
18
            return sum;
19
        }
20
21
        static long SumFor(int[] collection) {
22
            long sum = 0;
23
            for (int i = 0; i < collection.Length; ++i) {
24
                sum += collection[i];
25
            }
26
            return sum;
27
        }
28
29
        static void Benchmark<T>(Func<T> func, string message) {
30
            // warm-up call
31
            func();
32
33
            var sw = new Stopwatch();
34-
            var sw = Stopwatch.StartNew();
34+
35
                sw.Start();
36
                var res = func();
37
                sw.Stop();
38
                // Write result just to prevent the compiler from optimising away the method call
39
                Console.Write(res);
40
            }
41
            Console.Write('\n');
42
            Console.WriteLine(message + " : {0} ms", sw.ElapsedMilliseconds);
43
        }
44
    }
45
}