using System;
using System.IO;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
public class Program {
static int[] array = new int[] { 1, 3 };
static long benchMathMax
(int time) { var stopWatch = new Stopwatch();
stopWatch.Start();
for (int i
= 0; i
< time; i
++) { var r = Math.Max(array[0], array[1]);
}
return stopWatch.ElapsedMilliseconds;
}
static long benchEnumerableMax
(int time) { var stopWatch = new Stopwatch();
stopWatch.Start();
for (int i
= 0; i
< time; i
++) { var r = array.Max();
}
return stopWatch.ElapsedMilliseconds;
}
static long benchArrayLength
(int time) { var stopWatch = new Stopwatch();
stopWatch.Start();
for (int i
= 0; i
< time; i
++) { var r = array.Length;
}
return stopWatch.ElapsedMilliseconds;
}
static long benchEnumerableCount
(int time) { var stopWatch = new Stopwatch();
stopWatch.Start();
for (int i
= 0; i
< time; i
++) { var r = array.Count();
}
return stopWatch.ElapsedMilliseconds;
}
static void Main(string[] args) {
var array = new[] { 1, 3 };
Console.
WriteLine("Math.Max : {0}ms", benchMathMax
(time)); Console.
WriteLine("Enumerable.Max : {0}ms", benchEnumerableMax
(time)); Console.
WriteLine("Array.Length : {0}ms", benchArrayLength
(time)); Console.
WriteLine("Enumerable.Count: {0}ms", benchEnumerableCount
(time)); }
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uSU87CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwp1c2luZyBTeXN0ZW0uRGlhZ25vc3RpY3M7CnVzaW5nIFN5c3RlbS5MaW5xOwp1c2luZyBTeXN0ZW0uVGV4dDsKCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKICAgIHN0YXRpYyBpbnRbXSBhcnJheSA9IG5ldyBpbnRbXSB7IDEsIDMgfTsKCiAgICBzdGF0aWMgbG9uZyBiZW5jaE1hdGhNYXgoaW50IHRpbWUpIHsKICAgICAgICB2YXIgc3RvcFdhdGNoID0gbmV3IFN0b3B3YXRjaCgpOwogICAgICAgIHN0b3BXYXRjaC5TdGFydCgpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGltZTsgaSsrKSB7CiAgICAgICAgICAgIHZhciByID0gTWF0aC5NYXgoYXJyYXlbMF0sIGFycmF5WzFdKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0b3BXYXRjaC5FbGFwc2VkTWlsbGlzZWNvbmRzOwogICAgfQoKICAgIHN0YXRpYyBsb25nIGJlbmNoRW51bWVyYWJsZU1heChpbnQgdGltZSkgewogICAgICAgIHZhciBzdG9wV2F0Y2ggPSBuZXcgU3RvcHdhdGNoKCk7CiAgICAgICAgc3RvcFdhdGNoLlN0YXJ0KCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0aW1lOyBpKyspIHsKICAgICAgICAgICAgdmFyIHIgPSBhcnJheS5NYXgoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0b3BXYXRjaC5FbGFwc2VkTWlsbGlzZWNvbmRzOwogICAgfQoKICAgIHN0YXRpYyBsb25nIGJlbmNoQXJyYXlMZW5ndGgoaW50IHRpbWUpIHsKICAgICAgICB2YXIgc3RvcFdhdGNoID0gbmV3IFN0b3B3YXRjaCgpOwogICAgICAgIHN0b3BXYXRjaC5TdGFydCgpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGltZTsgaSsrKSB7CiAgICAgICAgICAgIHZhciByID0gYXJyYXkuTGVuZ3RoOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3RvcFdhdGNoLkVsYXBzZWRNaWxsaXNlY29uZHM7CiAgICB9CgogICAgc3RhdGljIGxvbmcgYmVuY2hFbnVtZXJhYmxlQ291bnQoaW50IHRpbWUpIHsKICAgICAgICB2YXIgc3RvcFdhdGNoID0gbmV3IFN0b3B3YXRjaCgpOwogICAgICAgIHN0b3BXYXRjaC5TdGFydCgpOwogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdGltZTsgaSsrKSB7CiAgICAgICAgICAgIHZhciByID0gYXJyYXkuQ291bnQoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHN0b3BXYXRjaC5FbGFwc2VkTWlsbGlzZWNvbmRzOwogICAgfQoKICAgIHN0YXRpYyB2b2lkIE1haW4oc3RyaW5nW10gYXJncykgewogICAgICAgIHZhciBhcnJheSA9IG5ld1tdIHsgMSwgMyB9OwoKICAgICAgICBpbnQgdGltZSA9IDEwMDAwMDAwOyAKCiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoIk1hdGguTWF4ICAgICAgICA6IHswfW1zIiwgYmVuY2hNYXRoTWF4KHRpbWUpKTsKICAgICAgICBDb25zb2xlLldyaXRlTGluZSgiRW51bWVyYWJsZS5NYXggIDogezB9bXMiLCBiZW5jaEVudW1lcmFibGVNYXgodGltZSkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJBcnJheS5MZW5ndGggICAgOiB7MH1tcyIsIGJlbmNoQXJyYXlMZW5ndGgodGltZSkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKCJFbnVtZXJhYmxlLkNvdW50OiB7MH1tcyIsIGJlbmNoRW51bWVyYWJsZUNvdW50KHRpbWUpKTsKICAgIH0KfQo=