Guest User

Untitled

a guest
May 31st, 2015
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.38 KB | None | 0 0
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include <sys/time.h>
  4. #include <time.h>
  5. #include <string.h>
  6. #include <inttypes.h>
  7.  
  8. //#define TESTTYPEARR float
  9. #define TESTTYPEARR uint32_t
  10.  
  11. #define STEP_MAX (1<<10ULL)
  12. #define TIMES 2048
  13. #define RUNS 10
  14.  
  15. volatile TESTTYPEARR fl_arr[TIMES*STEP_MAX] = {0};
  16.  
  17. long int gettime(unsigned int step, unsigned int times)
  18. {
  19.   struct timespec before, after;
  20.  
  21.   size_t index = 0;
  22.   for (unsigned int i = 0; i < times; i++)
  23.   {
  24.     fl_arr[index] = 0;
  25.     index += step;
  26.   }
  27.   clock_gettime(CLOCK_REALTIME, &before);
  28.  
  29.   index = 0;
  30.   for (unsigned int i = 0; i < times; i++)
  31.   {
  32.     fl_arr[index] = 0;
  33.     index += step;
  34.   }
  35.   clock_gettime(CLOCK_REALTIME, &after);
  36.  
  37.   return (after.tv_nsec - before.tv_nsec);
  38. }
  39.  
  40. long int arr_tmp[RUNS*STEP_MAX];
  41.  
  42. int main(void)
  43. {
  44.   long int *a = arr_tmp;
  45.   long int ar[RUNS];
  46.   for (unsigned int j = 1; j < (STEP_MAX+1); j++)
  47.   {
  48.     //printf("%u :\n",j);
  49.     for (unsigned int i = 0; i < RUNS; i++)
  50.     {
  51.       ar[i] = gettime(j,TIMES);
  52.     }
  53.     memcpy(a, ar, sizeof(ar));
  54.     for (unsigned int i = 0; i < RUNS; i++)
  55.     {
  56.       printf("%ld\t",a[i]);
  57.     }
  58.     printf("\n");
  59.     a += RUNS;
  60.   }
  61. /*
  62.   for (unsigned int i = 0; i < RUNS; i++)
  63.   {
  64.     for (unsigned int j = 0; j < STEP_MAX; j++)
  65.     {
  66.       printf("%ld\n", arr_tmp[i+RUNS*j]);
  67.     }
  68.     printf("\n");
  69.   }
  70. */
  71.   return 0;
  72. }
Advertisement
Add Comment
Please, Sign In to add comment