44 lines
1.0 KiB
C
44 lines
1.0 KiB
C
#include <stdio.h>
|
|
#include <time.h>
|
|
|
|
extern void fill_arr1(int* arr, size_t size, size_t row_count);
|
|
extern void fill_arr2(int* arr, size_t size, size_t row_count);
|
|
|
|
double measure_fill_time(void(*function)(int*, size_t, size_t), int* arr, size_t size, size_t row_count)
|
|
{
|
|
const size_t times = 10000000;
|
|
clock_t begin = clock();
|
|
for (size_t i = 0; i < times; i++)
|
|
{
|
|
function(arr, size, row_count);
|
|
}
|
|
clock_t end = clock();
|
|
return (double)(end - begin)/(CLOCKS_PER_SEC);
|
|
}
|
|
|
|
int main()
|
|
{
|
|
const int arr_size = 256;
|
|
int array1[arr_size];
|
|
|
|
printf("String methods took %fs to loop 10,000,000 times\n", measure_fill_time(fill_arr1, array1, arr_size, 16));
|
|
|
|
for (size_t i = 0; i < arr_size; i++)
|
|
{
|
|
printf("%d ", array1[i]);
|
|
}
|
|
printf("\b \n");
|
|
|
|
int array2[arr_size];
|
|
|
|
printf("Lea methods took %fs on to loop 10,000,000 times\n", measure_fill_time(fill_arr2, array2, arr_size, 16));
|
|
for (size_t i = 0; i < arr_size; i++)
|
|
{
|
|
printf("%d ", array2[i]);
|
|
}
|
|
printf("\b \n");
|
|
|
|
return 0;
|
|
}
|
|
|