Guest User

Untitled

a guest
May 24th, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <chrono>
  2. #include <iostream>
  3.  
  4. #define NOW std::chrono::high_resolution_clock::now
  5. #define DURATION_CAST(x)                                                       \
  6.     std::chrono::duration_cast<std::chrono::nanoseconds>(x).count()
  7.  
  8. int main(int argc, char* argv[])
  9. {
  10.     int n = atol(argv[1]);
  11.     srand(time(nullptr));
  12.  
  13.     int* x = new int[n];
  14.     int* y = new int[n];
  15.  
  16.     for (int i = 0; i < n; ++i)
  17.     {
  18.         x[i] = rand() / (RAND_MAX / 2);
  19.     }
  20.     int sum = 0;
  21.     for (int i = 0; i < n; ++i)
  22.     {
  23.         sum += x[i];
  24.     }
  25.     std::cout << sum << std::endl;
  26.  
  27.     auto t0 = NOW();
  28.     for (int i = 0; i < n; ++i)
  29.         x[i] = 1;
  30.  
  31.     auto t1 = NOW();
  32.     for (int i = 0; i < n; ++i)
  33.         y[i] = 1;
  34.  
  35.     auto t2 = NOW();
  36.     double dt1 = DURATION_CAST(t1 - t0);
  37.     double dt2 = DURATION_CAST(t2 - t1);
  38.  
  39.     std::cout << "Average time: " << dt1 / n << " ns" << std::endl;
  40.     std::cout << "Average time: " << dt2 / n << " ns" << std::endl;
  41.  
  42.     sum = 0;
  43.     for (int i = 0; i < n; ++i)
  44.     {
  45.         sum += x[i] + y[i];
  46.     }
  47.     std::cout << sum << std::endl;
  48.  
  49.     delete[] x;
  50.     delete[] y;
  51.  
  52.     return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment