#include #include #include #include #define MEGABYTE 1048576 int main (void) { unsigned int i; void *a = NULL; void *b = NULL; struct timeval ts; struct timeval te; for (i = 1; i <= 200; i++) { gettimeofday(&ts, NULL); printf("Start two blocks of %d megabytes\n", i); a = realloc(a, i * MEGABYTE); b = realloc(b, i * MEGABYTE); if (NULL == a || NULL == b) exit(EXIT_FAILURE); memset(a, '0', i * MEGABYTE); memset(b, '1', i * MEGABYTE); memcpy(b, a, i * MEGABYTE); gettimeofday(&te, NULL); printf("Elapsed: %.2f sec\n", te.tv_sec - ts.tv_sec + (te.tv_usec - ts.tv_usec)/1000000.0); fflush(stdout); } exit(EXIT_SUCCESS); }