Advertisement
Guest User

Memory test

a guest
Jun 18th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int generate_rand_number(int n); //generate rand number
  6. double calculate_with_pointers(void);//calculate execution time with pointers
  7. double calculate_without_pointers(void);//calculate execution time with pointers
  8.  
  9.  
  10. int main()
  11. {
  12.     int counter = 0;
  13.     double time_taken = 0;
  14.     double time_taken_ptr = 0;
  15.     double sum = 0;
  16.     double sum_ptr = 0;
  17.  
  18.     //REPEAT 10 TIMES
  19.     for(counter = 0;counter < 10;counter++)
  20.     {
  21.        time_taken = calculate_without_pointers();
  22.        time_taken_ptr = calculate_with_pointers();
  23.  
  24.        sum += time_taken;
  25.        sum_ptr += time_taken_ptr;
  26.     }
  27.  
  28.     printf("\n\n");
  29.     printf("AVERAGE EXECUTION TIME WITHOUT POINTERS: %f SECONDS\n", sum/10);
  30.     printf("AVERAGE EXECUTION TIME WITH POINTERS: %f SECONDS\n", sum_ptr/10);
  31.  
  32.     return 0;
  33. }
  34.  
  35. double calculate_with_pointers(void)
  36. {
  37.     srand(time(NULL));
  38.  
  39.     int rand_number = 0;
  40.     int rand_min = 1;
  41.     int rand_max = 5;
  42.     int counter = 0;
  43.     int sum = 0;
  44.     int *sum_pointer = &sum;
  45.     int array[100000];
  46.  
  47.     int *array_pointer = array;
  48.  
  49.  
  50.     clock_t t;
  51.     t = clock();
  52.  
  53.     for(counter = 0;counter < 100000;counter++)
  54.     {
  55.         rand_number = generate_rand_number(rand_max-rand_min+1) + rand_min;
  56.         *(array_pointer + counter) = rand_number;
  57.         *(sum_pointer) += rand_number;
  58.     }
  59.     t = clock() - t;
  60.     double time_taken = ((double)t)/CLOCKS_PER_SEC; // in seconds
  61.  
  62.     printf("EXECUTION TIME WITH PTR: %f\n", time_taken);
  63.     return time_taken;
  64. }
  65.  
  66. double calculate_without_pointers(void)
  67. {
  68.     srand(time(NULL));
  69.  
  70.     int rand_number = 0;
  71.     int rand_min = 1;
  72.     int rand_max = 5;
  73.     int counter = 0;
  74.     int sum = 0;
  75.     int array[100000];
  76.     clock_t t;
  77.     t = clock();
  78.  
  79.     for(counter = 0;counter < 100000;counter++)
  80.     {
  81.         rand_number = generate_rand_number(rand_max-rand_min+1) + rand_min;
  82.         array[counter]= rand_number;
  83.         sum += rand_number;
  84.     }
  85.  
  86.  
  87.     t = clock() - t;
  88.     double time_taken = ((double)t)/CLOCKS_PER_SEC; // in seconds
  89.  
  90.     printf("EXECUTION TIME WITHOUT PTR: %f\n", time_taken);
  91.     return time_taken;
  92. }
  93.  
  94. int generate_rand_number(int n)
  95. {
  96.     return rand() % n;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement