Advertisement
Guest User

Untitled

a guest
May 21st, 2020
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.00 KB | None | 0 0
  1. ARRAY #####1##### 4050 ms
  2.  
  3. void Main()
  4. {
  5.     var a = new int[100000];
  6.     for (int i = 0; i < a.Length; i++)
  7.     {
  8.         a[i] = (new Random()).Next(1, 100);
  9.     }
  10.     int repeats = a.Length - 1;
  11.     var sw = Stopwatch.StartNew();
  12.     do
  13.     {
  14.         a[repeats] = Sum(in a);
  15.     }
  16.     while (--repeats != 0);
  17.     sw.Stop();
  18.     Console.WriteLine(sw.ElapsedMilliseconds);
  19. }
  20.  
  21. int Sum(in int[] arr)
  22. {
  23.     int sum = 0;
  24.     for (int i = 0; i < arr.Length; i++)
  25.     {
  26.         sum += arr[i];
  27.     }
  28.     return sum;
  29. }
  30.  
  31.  
  32. ARRAY #####2##### 6209 ms
  33.  
  34. static void Main()
  35. {
  36.     var a = new int[100000];
  37.     for (int i = 0; i < a.Length; i++)
  38.     {
  39.         a[i] = (new Random()).Next(1, 100);
  40.     }
  41.     int repeats = a.Length - 1;
  42.     var sw = Stopwatch.StartNew();
  43.     do
  44.     {
  45.         a[repeats] = Sum(in a);
  46.     }
  47.     while (--repeats != 0);
  48.     sw.Stop();
  49.     Console.WriteLine(sw.ElapsedMilliseconds);
  50. }
  51.  
  52. static int Sum(in int[] arr)
  53. {
  54.     int sum = 0;
  55.     for (int i = 0; i < arr.Length; i++)
  56.     {
  57.         sum += arr[i];
  58.     }
  59.     return sum;
  60. }
  61.  
  62. ####POINTERS##### 3990
  63.  
  64. static void Main()
  65. {
  66.     unsafe
  67.     {
  68.         int length = 100000;
  69.         int* s = stackalloc int[length];
  70.         int* sp = &s[length - 1];
  71.  
  72.         for (int i = 0; i < length; i++)
  73.         {
  74.             s[i] = (new Random()).Next(1, 100);
  75.         }
  76.         int repeats = length - 1;
  77.         var sw = Stopwatch.StartNew();
  78.         do
  79.         {
  80.             *sp = Sum(&s[0], length);
  81.             sp--;
  82.         }
  83.         while (--repeats != 0);
  84.         sw.Stop();
  85.         Console.WriteLine(sw.ElapsedMilliseconds);
  86.     }
  87. }
  88. static unsafe int Sum(int* arr, int length)
  89. {
  90.     int sum = 0;
  91.     for (int i = 0; i < length; i++)
  92.     {
  93.         sum += *arr;
  94.         arr++;
  95.     }
  96.     return sum;
  97. }
  98.  
  99. #####SPAN##### 6300
  100. static void Main()
  101. {
  102.     Span<int> s = stackalloc int[100000];
  103.     for (int i = 0; i < s.Length; i++)
  104.     {
  105.         s[i] = (new Random()).Next(1, 100);
  106.     }
  107.     int repeats = s.Length - 1;
  108.     var sw = Stopwatch.StartNew();
  109.     do
  110.     {
  111.         s[repeats] = Sum(s);
  112.     }
  113.     while (--repeats != 0);
  114.     sw.Stop();
  115.     Console.WriteLine(sw.ElapsedMilliseconds);
  116. }
  117.  
  118. static int Sum(Span<int> arr)
  119. {
  120.     int sum = 0;
  121.     for (int i = 0; i < arr.Length; i++)
  122.     {
  123.         sum += arr[i];
  124.     }
  125.     return sum;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement