Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stddef.h>
- #include <stdio.h>
- #include <sys/time.h>
- #include <time.h>
- #include <string.h>
- #include <inttypes.h>
- //#define TESTTYPEARR float
- #define TESTTYPEARR uint32_t
- #define STEP_MAX (1<<10ULL)
- #define TIMES 2048
- #define RUNS 10
- volatile TESTTYPEARR fl_arr[TIMES*STEP_MAX] = {0};
- long int gettime(unsigned int step, unsigned int times)
- {
- struct timespec before, after;
- size_t index = 0;
- for (unsigned int i = 0; i < times; i++)
- {
- fl_arr[index] = 0;
- index += step;
- }
- clock_gettime(CLOCK_REALTIME, &before);
- index = 0;
- for (unsigned int i = 0; i < times; i++)
- {
- fl_arr[index] = 0;
- index += step;
- }
- clock_gettime(CLOCK_REALTIME, &after);
- return (after.tv_nsec - before.tv_nsec);
- }
- long int arr_tmp[RUNS*STEP_MAX];
- int main(void)
- {
- long int *a = arr_tmp;
- long int ar[RUNS];
- for (unsigned int j = 1; j < (STEP_MAX+1); j++)
- {
- //printf("%u :\n",j);
- for (unsigned int i = 0; i < RUNS; i++)
- {
- ar[i] = gettime(j,TIMES);
- }
- memcpy(a, ar, sizeof(ar));
- for (unsigned int i = 0; i < RUNS; i++)
- {
- printf("%ld\t",a[i]);
- }
- printf("\n");
- a += RUNS;
- }
- /*
- for (unsigned int i = 0; i < RUNS; i++)
- {
- for (unsigned int j = 0; j < STEP_MAX; j++)
- {
- printf("%ld\n", arr_tmp[i+RUNS*j]);
- }
- printf("\n");
- }
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment