Advertisement
Guest User

Untitled

a guest
Feb 9th, 2018
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. Test Program:
  2.  
  3. #include <string.h>
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <time.h>
  7. #include <stdint.h>
  8.  
  9. static inline uint64_t nanotime()
  10. {
  11. struct timespec time;
  12. clock_gettime(CLOCK_MONOTONIC_RAW, &time);
  13. return ((uint64_t)time.tv_sec * 1e9) + time.tv_nsec;
  14. }
  15.  
  16. int main(int argc, char * argv[])
  17. {
  18. const int s = atoi(argv[1]);
  19. int size = s * 1024 * 1024;
  20. char * buffer1 = malloc(size);
  21. char * buffer2 = malloc(size);
  22.  
  23. uint64_t t = nanotime();
  24. for(int i = 0; i < 1000; ++i)
  25. memcpy(buffer1, buffer2, size);
  26. float ms = (((float)(nanotime() - t) / 1000.0f) / 1000000.0f) / s;
  27. printf("%2u MB = %f ms = %f MB/s\n", s, ms, 1000.0f / ms);
  28.  
  29. free(buffer1);
  30. free(buffer2);
  31. return 0;
  32. }
  33.  
  34. Compiled with: gcc -O3 main.c -o main
  35. Run with : for N in $(seq 1 16); do ./main $N; done
  36.  
  37. Native:
  38.  
  39. 1 MB = 0.026951 ms = 37103.832031 MB/s
  40. 2 MB = 0.027689 ms = 36114.992188 MB/s
  41. 3 MB = 0.026592 ms = 37605.621094 MB/s
  42. 4 MB = 0.026486 ms = 37756.367188 MB/s
  43. 5 MB = 0.026704 ms = 37448.269531 MB/s
  44. 6 MB = 0.026157 ms = 38231.394531 MB/s
  45. 7 MB = 0.026271 ms = 38064.667969 MB/s
  46. 8 MB = 0.026195 ms = 38175.097656 MB/s
  47. 9 MB = 0.026248 ms = 38098.355469 MB/s
  48. 10 MB = 0.026105 ms = 38306.691406 MB/s
  49. 11 MB = 0.026334 ms = 37974.281250 MB/s
  50. 12 MB = 0.026048 ms = 38390.886719 MB/s
  51. 13 MB = 0.026053 ms = 38383.210938 MB/s
  52. 14 MB = 0.026249 ms = 38096.445312 MB/s
  53. 15 MB = 0.025650 ms = 38986.160156 MB/s
  54. 16 MB = 0.029301 ms = 34128.640625 MB/s
  55.  
  56. Linux Guest:
  57.  
  58. 1 MB = 0.025918 ms = 38583.910156 MB/s
  59. 2 MB = 0.023562 ms = 42440.835938 MB/s
  60. 3 MB = 0.025595 ms = 39070.039062 MB/s
  61. 4 MB = 0.026651 ms = 37522.320312 MB/s
  62. 5 MB = 0.027931 ms = 35802.753906 MB/s
  63. 6 MB = 0.048154 ms = 20766.677734 MB/s
  64. 7 MB = 0.072737 ms = 13748.209961 MB/s
  65. 8 MB = 0.091076 ms = 10979.875000 MB/s
  66. 9 MB = 0.088327 ms = 11321.626953 MB/s
  67. 10 MB = 0.089306 ms = 11197.451172 MB/s
  68. 11 MB = 0.087753 ms = 11395.622070 MB/s
  69. 12 MB = 0.088872 ms = 11252.117188 MB/s
  70. 13 MB = 0.086605 ms = 11546.611328 MB/s
  71. 14 MB = 0.087560 ms = 11420.737305 MB/s
  72. 15 MB = 0.085218 ms = 11734.602539 MB/s
  73. 16 MB = 0.086309 ms = 11586.260742 MB/s
  74.  
  75. Windows Guest:
  76.  
  77. 1 MB = 0.026698 ms = 37455.988281 MB/s
  78. 2 MB = 0.025035 ms = 39944.875000 MB/s
  79. 3 MB = 0.027583 ms = 36253.777344 MB/s
  80. 4 MB = 0.059596 ms = 16779.648438 MB/s
  81. 5 MB = 0.119665 ms = 8356.649414 MB/s
  82. 6 MB = 0.121314 ms = 8243.060547 MB/s
  83. 7 MB = 0.120684 ms = 8286.102539 MB/s
  84. 8 MB = 0.119921 ms = 8338.796875 MB/s
  85. 9 MB = 0.120680 ms = 8286.401367 MB/s
  86. 10 MB = 0.119490 ms = 8368.907227 MB/s
  87. 11 MB = 0.122284 ms = 8177.672363 MB/s
  88. 12 MB = 0.122559 ms = 8159.346191 MB/s
  89. 13 MB = 0.121242 ms = 8247.961914 MB/s
  90. 14 MB = 0.119960 ms = 8336.106445 MB/s
  91. 15 MB = 0.122694 ms = 8150.348633 MB/s
  92. 16 MB = 0.122010 ms = 8196.057617 MB/s
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement