Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Test Program:
- #include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #include <stdint.h>
- static inline uint64_t nanotime()
- {
- struct timespec time;
- clock_gettime(CLOCK_MONOTONIC_RAW, &time);
- return ((uint64_t)time.tv_sec * 1e9) + time.tv_nsec;
- }
- int main(int argc, char * argv[])
- {
- const int s = atoi(argv[1]);
- int size = s * 1024 * 1024;
- char * buffer1 = malloc(size);
- char * buffer2 = malloc(size);
- uint64_t t = nanotime();
- for(int i = 0; i < 1000; ++i)
- memcpy(buffer1, buffer2, size);
- float ms = (((float)(nanotime() - t) / 1000.0f) / 1000000.0f) / s;
- printf("%2u MB = %f ms = %f MB/s\n", s, ms, 1000.0f / ms);
- free(buffer1);
- free(buffer2);
- return 0;
- }
- Compiled with: gcc -O3 main.c -o main
- Run with : for N in $(seq 1 16); do ./main $N; done
- Native:
- 1 MB = 0.026951 ms = 37103.832031 MB/s
- 2 MB = 0.027689 ms = 36114.992188 MB/s
- 3 MB = 0.026592 ms = 37605.621094 MB/s
- 4 MB = 0.026486 ms = 37756.367188 MB/s
- 5 MB = 0.026704 ms = 37448.269531 MB/s
- 6 MB = 0.026157 ms = 38231.394531 MB/s
- 7 MB = 0.026271 ms = 38064.667969 MB/s
- 8 MB = 0.026195 ms = 38175.097656 MB/s
- 9 MB = 0.026248 ms = 38098.355469 MB/s
- 10 MB = 0.026105 ms = 38306.691406 MB/s
- 11 MB = 0.026334 ms = 37974.281250 MB/s
- 12 MB = 0.026048 ms = 38390.886719 MB/s
- 13 MB = 0.026053 ms = 38383.210938 MB/s
- 14 MB = 0.026249 ms = 38096.445312 MB/s
- 15 MB = 0.025650 ms = 38986.160156 MB/s
- 16 MB = 0.029301 ms = 34128.640625 MB/s
- Linux Guest:
- 1 MB = 0.025918 ms = 38583.910156 MB/s
- 2 MB = 0.023562 ms = 42440.835938 MB/s
- 3 MB = 0.025595 ms = 39070.039062 MB/s
- 4 MB = 0.026651 ms = 37522.320312 MB/s
- 5 MB = 0.027931 ms = 35802.753906 MB/s
- 6 MB = 0.048154 ms = 20766.677734 MB/s
- 7 MB = 0.072737 ms = 13748.209961 MB/s
- 8 MB = 0.091076 ms = 10979.875000 MB/s
- 9 MB = 0.088327 ms = 11321.626953 MB/s
- 10 MB = 0.089306 ms = 11197.451172 MB/s
- 11 MB = 0.087753 ms = 11395.622070 MB/s
- 12 MB = 0.088872 ms = 11252.117188 MB/s
- 13 MB = 0.086605 ms = 11546.611328 MB/s
- 14 MB = 0.087560 ms = 11420.737305 MB/s
- 15 MB = 0.085218 ms = 11734.602539 MB/s
- 16 MB = 0.086309 ms = 11586.260742 MB/s
- Windows Guest:
- 1 MB = 0.026698 ms = 37455.988281 MB/s
- 2 MB = 0.025035 ms = 39944.875000 MB/s
- 3 MB = 0.027583 ms = 36253.777344 MB/s
- 4 MB = 0.059596 ms = 16779.648438 MB/s
- 5 MB = 0.119665 ms = 8356.649414 MB/s
- 6 MB = 0.121314 ms = 8243.060547 MB/s
- 7 MB = 0.120684 ms = 8286.102539 MB/s
- 8 MB = 0.119921 ms = 8338.796875 MB/s
- 9 MB = 0.120680 ms = 8286.401367 MB/s
- 10 MB = 0.119490 ms = 8368.907227 MB/s
- 11 MB = 0.122284 ms = 8177.672363 MB/s
- 12 MB = 0.122559 ms = 8159.346191 MB/s
- 13 MB = 0.121242 ms = 8247.961914 MB/s
- 14 MB = 0.119960 ms = 8336.106445 MB/s
- 15 MB = 0.122694 ms = 8150.348633 MB/s
- 16 MB = 0.122010 ms = 8196.057617 MB/s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement