Сейчас на форуме: tyns777, zds, JustLife (+4 невидимых)

 eXeL@B —› Программирование —› самый быстрый memcpy
. 1 . 2 . >>
Посл.ответ Сообщение

Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 15 февраля 2010 19:08 · Поправил: Vol4ok
· Личное сообщение · #1

Протестируйте на предмет самой быстрой реализации memcpy -бэнчмэк

В нем содержится множество различных реализаций memcpy начиная от SSE заканчивая простым циклом. Заодно это отличный способ оценить скорость работы с памятью на компе.

Результаты кидайте сюда, вместе с процом на котором тестировали.

Мои результаты для Core2Duo 2.26
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. // MMX реализация на асме с prefetch
  7. mmx_memcpy_asm:
  8. ttl: 0.114444 s
  9. avr: 0.007153 s
  10. spd: 2237 mb/s
  11.  
  12. // MMX реализация на intrinsic инструкциях c prefetch
  13. mmx_memcpy:
  14. ttl: 0.115609 s
  15. avr: 0.007226 s
  16. spd: 2214 mb/s
  17.  
  18. // очень хитрая на MMX под AMD c prefetch
  19. memcpy_huge:
  20. ttl: 0.111493 s
  21. avr: 0.006968 s
  22. spd: 2296 mb/s
  23.  
  24. //реализация на SSE
  25. sse_memcpy_asm:
  26. ttl: 0.177681 s
  27. avr: 0.011105 s
  28. spd: 1441 mb/s
  29.  
  30. //реализация на SSE c prefetch
  31. sse_memcpy_asm2:
  32. ttl: 0.143008 s
  33. avr: 0.008938 s
  34. spd: 1790 mb/s
  35.  
  36. //реализация на SSE на intrinsic инструкциях
  37. sse_memcpy:
  38. ttl: 0.183768 s
  39. avr: 0.011486 s
  40. spd: 1393 mb/s
  41.  
  42. //реализация на SSE на intrinsic инструкциях без выравнивания
  43. sse_memcpy_u:
  44. ttl: 0.189657 s
  45. avr: 0.011854 s
  46. spd: 1350 mb/s
  47.  
  48. //цикл rep movsd
  49. movsd:
  50. ttl: 0.181586 s
  51. avr: 0.011349 s
  52. spd: 1410 mb/s
  53.  
  54. //ntdll RtlCopyMemory
  55. RtlCopyMemory:
  56. ttl: 0.200333 s
  57. avr: 0.012521 s
  58. spd: 1278 mb/s
  59.  
  60. //crt memcpy_s
  61. memcpy_s:
  62. ttl: 0.207848 s
  63. avr: 0.012990 s
  64. spd: 1232 mb/s
  65.  
  66. //цикл for c копированием по 4B
  67. for loop (dword):
  68. ttl: 0.204562 s
  69. avr: 0.012785 s
  70. spd: 1251 mb/s
  71.  
  72. //цикл while c копированием по 4B
  73. while loop (dword):
  74. ttl: 0.197684 s
  75. avr: 0.012355 s
  76. spd: 1295 mb/s
  77.  
  78. //цикл while c копированием по 1B
  79. for loop (byte):
  80. ttl: 0.276843 s
  81. avr: 0.017303 s
  82. spd: 925 mb/s
  83.  
  84.  

ЗЫ: если есть еще идеи для реализации быстрой memcpy, то кидайте сюда, если это будет актуально то включу в бэнчмэк.



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 15 февраля 2010 19:16
· Личное сообщение · #2

Какую-то херню он у тебя выдает.

mmx_memcpy_asm:
ttl: 3.950031 s
avr: 0.246877 s
spd: 65 mb/s

У меня Core i7, а не пентиум 1. Ищи баг. Примерно то-же самое выдает не Core i5.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 192.7 (ветеран), 154thx
Активность: 0.070
Статус: Участник
The ONE

Создано: 15 февраля 2010 19:27
· Личное сообщение · #3

Intel Core 2 Quad 2,66 (Win 7)

Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 3.553828 s
  8. avr: 0.222114 s
  9. spd: 72 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 3.520875 s
  13. avr: 0.220055 s
  14. spd: 73 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 3.837970 s
  18. avr: 0.239873 s
  19. spd: 67 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 3.042574 s
  23. avr: 0.190161 s
  24. spd: 84 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 2.979471 s
  28. avr: 0.186217 s
  29. spd: 86 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 3.035924 s
  33. avr: 0.189745 s
  34. spd: 84 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 3.638194 s
  38. avr: 0.227387 s
  39. spd: 70 mb/s
  40.  
  41. movsd:
  42. ttl: 8.262453 s
  43. avr: 0.516403 s
  44. spd: 31 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 8.220791 s
  48. avr: 0.513799 s
  49. spd: 31 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 2.972370 s
  53. avr: 0.185773 s
  54. spd: 86 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 8.196832 s
  58. avr: 0.512302 s
  59. spd: 31 mb/s


-----
Сотрудник DHARMA




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 15 февраля 2010 19:40
· Личное сообщение · #4

rep movsd самый быстрый(4, 8 etc. байт не учитываются), иначе типо mov и пр. быстрее. Кстате в юзермоде профайленг это изврат




Ранг: 462.8 (мудрец), 468thx
Активность: 0.280
Статус: Участник
Only One!

Создано: 15 февраля 2010 19:43 · Поправил: DaRKSiDE
· Личное сообщение · #5

Pentium 4 - 2.60 GHz

Code:
  1. mmx_memcpy_asm:
  2. ttl: 0.210096 s
  3. avr: 0.013131 s
  4. spd: 1218 mb/s
  5.  
  6. mmx_memcpy:
  7. ttl: 0.212673 s
  8. avr: 0.013292 s
  9. spd: 1204 mb/s
  10.  
  11. memcpy_huge:
  12. ttl: 0.196439 s
  13. avr: 0.012277 s
  14. spd: 1303 mb/s
  15.  
  16. sse_memcpy_asm:
  17. ttl: 0.321834 s
  18. avr: 0.020115 s
  19. spd: 795 mb/s
  20.  
  21. sse_memcpy_asm2:
  22. ttl: 0.211145 s
  23. avr: 0.013197 s
  24. spd: 1212 mb/s
  25.  
  26. sse_memcpy:
  27. ttl: 0.320157 s
  28. avr: 0.020010 s
  29. spd: 800 mb/s
  30.  
  31. sse_memcpy_u:
  32. ttl: 0.326868 s
  33. avr: 0.020429 s
  34. spd: 783 mb/s
  35.  
  36. movsd:
  37. ttl: 0.323771 s
  38. avr: 0.020236 s
  39. spd: 791 mb/s
  40.  
  41. RtlCopyMemory:
  42. ttl: 0.324805 s
  43. avr: 0.020300 s
  44. spd: 788 mb/s
  45.  
  46. memcpy_s:
  47. ttl: 0.324114 s
  48. avr: 0.020257 s
  49. spd: 790 mb/s
  50.  
  51. for loop (dword):
  52. ttl: 0.326095 s
  53. avr: 0.020381 s
  54. spd: 785 mb/s
  55.  
  56. while loop (dword):
  57. ttl: 0.381432 s
  58. avr: 0.023840 s
  59. spd: 671 mb/s
  60.  
  61. for loop (byte):
  62. ttl: 1.003495 s
  63. avr: 0.062718 s
  64. spd: 255 mb/s


-----
aLL rIGHTS rEVERSED!




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 15 февраля 2010 19:44
· Личное сообщение · #6

Clerk пишет:
rep movsd самый быстрый

Это отнюдь не так. Копирование через mmx/sse с записью мимо кэша работает существенно быстрее на больших выравненных на 16 блоках памяти.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 147.7 (ветеран), 50thx
Активность: 0.120
Статус: Участник
sv_cheats 1

Создано: 15 февраля 2010 19:52 · Поправил: SER[G]ANT
· Личное сообщение · #7

AMD Athlon II x2 250 (2.99 ГГц)
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 0.090227 s
  8. avr: 0.005639 s
  9. spd: 2837 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 0.097013 s
  13. avr: 0.006063 s
  14. spd: 2639 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 0.086159 s
  18. avr: 0.005385 s
  19. spd: 2971 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 0.139476 s
  23. avr: 0.008717 s
  24. spd: 1835 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 0.095687 s
  28. avr: 0.005980 s
  29. spd: 2675 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 0.142094 s
  33. avr: 0.008881 s
  34. spd: 1802 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 0.141432 s
  38. avr: 0.008840 s
  39. spd: 1810 mb/s
  40.  
  41. movsd:
  42. ttl: 0.146729 s
  43. avr: 0.009171 s
  44. spd: 1745 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 0.146193 s
  48. avr: 0.009137 s
  49. spd: 1751 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 0.160891 s
  53. avr: 0.010056 s
  54. spd: 1591 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 0.153589 s
  58. avr: 0.009599 s
  59. spd: 1667 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 0.155292 s
  63. avr: 0.009706 s
  64. spd: 1649 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 0.224935 s
  68. avr: 0.014058 s
  69. spd: 1138 mb/s




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 15 февраля 2010 19:56
· Личное сообщение · #8

Имхо он выложил баговую версию. Мои результаты и близко не похожи на правду.

-----
PGP key <0x1B6A24550F33E44A>




Ранг: 60.6 (постоянный), 20thx
Активность: 0.070
Статус: Участник

Создано: 15 февраля 2010 20:42
· Личное сообщение · #9

Intel Pentium D-915 2.80GHz
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 6.028324 s
  8. avr: 0.376770 s
  9. spd: 42 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 6.077168 s
  13. avr: 0.379823 s
  14. spd: 42 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 6.777012 s
  18. avr: 0.423563 s
  19. spd: 38 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 4.391586 s
  23. avr: 0.274474 s
  24. spd: 58 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 4.362426 s
  28. avr: 0.272652 s
  29. spd: 59 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 4.404981 s
  33. avr: 0.275311 s
  34. spd: 58 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 6.197998 s
  38. avr: 0.387375 s
  39. spd: 41 mb/s
  40.  
  41. movsd:
  42. ttl: 13.480033 s
  43. avr: 0.842502 s
  44. spd: 19 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 13.685979 s
  48. avr: 0.855374 s
  49. spd: 19 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 4.416383 s
  53. avr: 0.276024 s
  54. spd: 58 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 13.604286 s
  58. avr: 0.850268 s
  59. spd: 19 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 13.531449 s
  63. avr: 0.845716 s
  64. spd: 19 mb/s




Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 15 февраля 2010 21:19
· Личное сообщение · #10

хм, действительно странно, у меня нормально работает.
Тестирование временно отменяется, пока не разберусь почему такие мелкие скорости.



Ранг: 49.6 (посетитель), 9thx
Активность: 0.030
Статус: Участник

Создано: 15 февраля 2010 21:22 · Поправил: huckfuck
· Личное сообщение · #11

Athlon X2 4800+ 2,5 ГГц
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 2.957761 s
  8. avr: 0.184860 s
  9. spd: 87 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 2.972765 s
  13. avr: 0.185798 s
  14. spd: 86 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 3.252638 s
  18. avr: 0.203290 s
  19. spd: 79 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 2.970238 s
  23. avr: 0.185640 s
  24. spd: 86 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 2.965514 s
  28. avr: 0.185345 s
  29. spd: 86 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 2.981480 s
  33. avr: 0.186342 s
  34. spd: 86 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 2.976424 s
  38. avr: 0.186027 s
  39. spd: 86 mb/s
  40.  
  41. movsd:
  42. ttl: 8.500210 s
  43. avr: 0.531263 s
  44. spd: 30 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 8.502753 s
  48. avr: 0.531422 s
  49. spd: 30 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 2.961285 s
  53. avr: 0.185080 s
  54. spd: 86 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 8.439207 s
  58. avr: 0.527450 s
  59. spd: 30 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 8.451844 s
  63. avr: 0.528240 s
  64. spd: 30 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 33.736426 s
  68. avr: 2.108527 s
  69. spd: 8 mb/s





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 февраля 2010 21:22
· Личное сообщение · #12

на asmcommunity.net неоднократно тема поднималась, посмотри и там.

-----
EnJoy!




Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 15 февраля 2010 22:02 · Поправил: Vol4ok
· Личное сообщение · #13

замечательный баг, который не проявляет себя под виртуалкой)).

Версия испралена - тестирование продолжается.
(ссылка таже)



Ранг: 114.8 (ветеран), 41thx
Активность: 0.10
Статус: Участник

Создано: 15 февраля 2010 22:14
· Личное сообщение · #14

Vol4ok пишет:
замечательный баг, который не проявляет себя под виртуалкой)).

а подробней можно?))

Intel Celeron E1400 3.2 GHz
Code:
  1. mmx_memcpy_asm:
  2. ttl: 0.202681 s
  3. avr: 0.012668 s
  4. spd: 1263 mb/s
  5.  
  6. mmx_memcpy:
  7. ttl: 0.197569 s
  8. avr: 0.012348 s
  9. spd: 1296 mb/s
  10.  
  11. memcpy_huge:
  12. ttl: 0.175040 s
  13. avr: 0.010940 s
  14. spd: 1463 mb/s
  15.  
  16. sse_memcpy_asm:
  17. ttl: 0.390584 s
  18. avr: 0.024412 s
  19. spd: 655 mb/s
  20.  
  21. sse_memcpy_asm2:
  22. ttl: 0.217836 s
  23. avr: 0.013615 s
  24. spd: 1175 mb/s
  25.  
  26. sse_memcpy:
  27. ttl: 0.403958 s
  28. avr: 0.025247 s
  29. spd: 634 mb/s
  30.  
  31. sse_memcpy_u:
  32. ttl: 0.398452 s
  33. avr: 0.024903 s
  34. spd: 642 mb/s
  35.  
  36. movsd:
  37. ttl: 0.361364 s
  38. avr: 0.022585 s
  39. spd: 708 mb/s
  40.  
  41. RtlCopyMemory:
  42. ttl: 0.362814 s
  43. avr: 0.022676 s
  44. spd: 706 mb/s
  45.  
  46. memcpy_s:
  47. ttl: 0.399609 s
  48. avr: 0.024976 s
  49. spd: 641 mb/s
  50.  
  51. for loop (dword):
  52. ttl: 0.396787 s
  53. avr: 0.024799 s
  54. spd: 645 mb/s
  55.  
  56. while loop (dword):
  57. ttl: 0.400570 s
  58. avr: 0.025036 s
  59. spd: 639 mb/s
  60.  
  61. for loop (byte):
  62. ttl: 0.394031 s
  63. avr: 0.024627 s
  64. spd: 650 mb/s




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 15 февраля 2010 22:21
· Личное сообщение · #15

Core i7 2.93 ггц

Code:
  1. mmx_memcpy_asm:
  2. ttl: 0.046526 s
  3. avr: 0.002908 s
  4. spd: 5502 mb/s
  5.  
  6. mmx_memcpy:
  7. ttl: 0.046837 s
  8. avr: 0.002927 s
  9. spd: 5466 mb/s
  10.  
  11. memcpy_huge:
  12. ttl: 0.053809 s
  13. avr: 0.003363 s
  14. spd: 4758 mb/s
  15.  
  16. sse_memcpy_asm:
  17. ttl: 0.058576 s
  18. avr: 0.003661 s
  19. spd: 4370 mb/s
  20.  
  21. sse_memcpy_asm2:
  22. ttl: 0.044150 s
  23. avr: 0.002759 s
  24. spd: 5798 mb/s
  25.  
  26. sse_memcpy:
  27. ttl: 0.058943 s
  28. avr: 0.003684 s
  29. spd: 4343 mb/s
  30.  
  31. sse_memcpy_u:
  32. ttl: 0.059075 s
  33. avr: 0.003692 s
  34. spd: 4333 mb/s
  35.  
  36. movsd:
  37. ttl: 0.051868 s
  38. avr: 0.003242 s
  39. spd: 4936 mb/s
  40.  
  41. RtlCopyMemory:
  42. ttl: 0.052099 s
  43. avr: 0.003256 s
  44. spd: 4914 mb/s
  45.  
  46. memcpy_s:
  47. ttl: 0.059029 s
  48. avr: 0.003689 s
  49. spd: 4337 mb/s
  50.  
  51. for loop (dword):
  52. ttl: 0.079306 s
  53. avr: 0.004957 s
  54. spd: 3228 mb/s
  55.  
  56. while loop (dword):
  57. ttl: 0.079903 s
  58. avr: 0.004994 s
  59. spd: 3204 mb/s
  60.  
  61. for loop (byte):
  62. ttl: 0.180427 s
  63. avr: 0.011277 s
  64. spd: 1419 mb/s


-----
PGP key <0x1B6A24550F33E44A>




Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 15 февраля 2010 22:23
· Личное сообщение · #16

Core i5 3.33 ггц

Code:
  1. mmx_memcpy_asm:
  2. ttl: 0.062969 s
  3. avr: 0.003936 s
  4. spd: 4065 mb/s
  5.  
  6. mmx_memcpy:
  7. ttl: 0.064024 s
  8. avr: 0.004002 s
  9. spd: 3998 mb/s
  10.  
  11. memcpy_huge:
  12. ttl: 0.069716 s
  13. avr: 0.004357 s
  14. spd: 3672 mb/s
  15.  
  16. sse_memcpy_asm:
  17. ttl: 0.073209 s
  18. avr: 0.004576 s
  19. spd: 3497 mb/s
  20.  
  21. sse_memcpy_asm2:
  22. ttl: 0.059884 s
  23. avr: 0.003743 s
  24. spd: 4275 mb/s
  25.  
  26. sse_memcpy:
  27. ttl: 0.072950 s
  28. avr: 0.004559 s
  29. spd: 3509 mb/s
  30.  
  31. sse_memcpy_u:
  32. ttl: 0.073025 s
  33. avr: 0.004564 s
  34. spd: 3506 mb/s
  35.  
  36. movsd:
  37. ttl: 0.057289 s
  38. avr: 0.003581 s
  39. spd: 4469 mb/s
  40.  
  41. RtlCopyMemory:
  42. ttl: 0.057495 s
  43. avr: 0.003593 s
  44. spd: 4453 mb/s
  45.  
  46. memcpy_s:
  47. ttl: 0.073291 s
  48. avr: 0.004581 s
  49. spd: 3493 mb/s
  50.  
  51. for loop (dword):
  52. ttl: 0.076445 s
  53. avr: 0.004778 s
  54. spd: 3349 mb/s
  55.  
  56. while loop (dword):
  57. ttl: 0.076604 s
  58. avr: 0.004788 s
  59. spd: 3342 mb/s
  60.  
  61. for loop (byte):
  62. ttl: 0.166142 s
  63. avr: 0.010384 s
  64. spd: 1541 mb/s


-----
PGP key <0x1B6A24550F33E44A>




Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 15 февраля 2010 22:46 · Поправил: HiEndsoft
· Личное сообщение · #17

Проще выложить было относительный тест ф-ций.Ибо тут важна не производительность как таковая, а какую функу на каком проце при каком выравнивании и размере блока использовать рациональнее. for loop, while loop - ни к чему. Чего компами в топике про программирование меряться, если тут не исходников ни полезного кода?!!?
В аттаче - графический тест именно различий.

c00a_15.02.2010_CRACKLAB.rU.tgz - Memory.exe

-----
продавец резиновых утёнков




Ранг: 49.6 (посетитель), 9thx
Активность: 0.030
Статус: Участник

Создано: 15 февраля 2010 22:49
· Личное сообщение · #18

Athlon X2 4800+ 2,5 ГГц
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 0.123881 s
  8. avr: 0.007743 s
  9. spd: 2067 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 0.154736 s
  13. avr: 0.009671 s
  14. spd: 1654 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 0.104545 s
  18. avr: 0.006534 s
  19. spd: 2449 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 0.212759 s
  23. avr: 0.013297 s
  24. spd: 1203 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 0.182187 s
  28. avr: 0.011387 s
  29. spd: 1405 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 0.213720 s
  33. avr: 0.013357 s
  34. spd: 1198 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 0.210739 s
  38. avr: 0.013171 s
  39. spd: 1215 mb/s
  40.  
  41. movsd:
  42. ttl: 0.228034 s
  43. avr: 0.014252 s
  44. spd: 1123 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 0.229127 s
  48. avr: 0.014320 s
  49. spd: 1117 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 0.213097 s
  53. avr: 0.013319 s
  54. spd: 1201 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 0.226343 s
  58. avr: 0.014146 s
  59. spd: 1131 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 0.228481 s
  63. avr: 0.014280 s
  64. spd: 1120 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 0.307510 s
  68. avr: 0.019219 s
  69. spd: 832 mb/s




Ранг: 8.1 (гость), 3thx
Активность: 0=0
Статус: Участник

Создано: 15 февраля 2010 23:22
· Личное сообщение · #19

Intel(R) Celeron(R) CPU 2.80Ghz 2.79ГГц
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 0.423023 s
  8. avr: 0.026439 s
  9. spd: 605 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 0.357691 s
  13. avr: 0.022356 s
  14. spd: 716 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 0.320527 s
  18. avr: 0.020033 s
  19. spd: 799 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 0.715894 s
  23. avr: 0.044743 s
  24. spd: 358 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 0.362059 s
  28. avr: 0.022629 s
  29. spd: 707 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 0.714021 s
  33. avr: 0.044626 s
  34. spd: 359 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 0.723509 s
  38. avr: 0.045219 s
  39. spd: 354 mb/s
  40.  
  41. movsd:
  42. ttl: 0.706423 s
  43. avr: 0.044151 s
  44. spd: 362 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 0.704973 s
  48. avr: 0.044061 s
  49. spd: 363 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 0.712855 s
  53. avr: 0.044553 s
  54. spd: 359 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 0.746167 s
  58. avr: 0.046635 s
  59. spd: 343 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 0.724228 s
  63. avr: 0.045264 s
  64. spd: 353 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 1.025399 s
  68. avr: 0.064087 s
  69. spd: 250 mb/s
  70.  




Ранг: 60.6 (постоянный), 20thx
Активность: 0.070
Статус: Участник

Создано: 16 февраля 2010 00:09
· Личное сообщение · #20

Intel Pentium D-915 2.80GHz

Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 0.123451 s
  8. avr: 0.007716 s
  9. spd: 2074 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 0.118758 s
  13. avr: 0.007422 s
  14. spd: 2156 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 0.116994 s
  18. avr: 0.007312 s
  19. spd: 2188 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 0.163798 s
  23. avr: 0.010237 s
  24. spd: 1563 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 0.114722 s
  28. avr: 0.007170 s
  29. spd: 2231 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 0.162782 s
  33. avr: 0.010174 s
  34. spd: 1573 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 0.167714 s
  38. avr: 0.010482 s
  39. spd: 1526 mb/s
  40.  
  41. movsd:
  42. ttl: 0.159698 s
  43. avr: 0.009981 s
  44. spd: 1603 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 0.158644 s
  48. avr: 0.009915 s
  49. spd: 1614 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 0.162949 s
  53. avr: 0.010184 s
  54. spd: 1571 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 0.170325 s
  58. avr: 0.010645 s
  59. spd: 1503 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 0.173755 s
  63. avr: 0.010860 s
  64. spd: 1473 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 0.885738 s
  68. avr: 0.055359 s
  69. spd: 289 mb/s





Ранг: 111.1 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 16 февраля 2010 00:17
· Личное сообщение · #21

AMD Sempron 2400+ (1,66 ГГц)
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 7.498414 s
  8. avr: 0.468651 s
  9. spd: 34 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 7.490995 s
  13. avr: 0.468187 s
  14. spd: 34 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 8.240654 s
  18. avr: 0.515041 s
  19. spd: 31 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: -1.#IND00 s
  23. avr: -1.#IND00 s
  24. spd: -1 mb/s
  25.  
  26. ERROR!!!!
  27.  
  28. sse_memcpy_asm2:
  29. ttl: -1.#IND00 s
  30. avr: -1.#IND00 s
  31. spd: -1 mb/s
  32.  
  33. ERROR!!!!
  34.  
  35. sse_memcpy:
  36. ttl: -1.#IND00 s
  37. avr: -1.#IND00 s
  38. spd: -1 mb/s
  39.  
  40. ERROR!!!!
  41.  
  42. sse_memcpy_u:
  43. ttl: -1.#IND00 s
  44. avr: -1.#IND00 s
  45. spd: -1 mb/s
  46.  
  47. ERROR!!!!
  48.  
  49. movsd:
  50. ttl: 19.463653 s
  51. avr: 1.216478 s
  52. spd: 13 mb/s
  53.  
  54. RtlCopyMemory:
  55. ttl: 19.452523 s
  56. avr: 1.215783 s
  57. spd: 13 mb/s
  58.  
  59. memcpy_s:
  60. ttl: 19.463433 s
  61. avr: 1.216465 s
  62. spd: 13 mb/s
  63.  
  64. for loop (dword):
  65. ttl: 19.476865 s
  66. avr: 1.217304 s
  67. spd: 13 mb/s
  68.  
  69. while loop (dword):
  70. ttl: 19.483633 s
  71. avr: 1.217727 s
  72. spd: 13 mb/s
  73.  
  74. for loop (byte):
  75. ttl: 78.375483 s
  76. avr: 4.898468 s
  77. spd: 3 mb/s


-----
The truth is out of there...





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 16 февраля 2010 03:42 · Поправил: DrGolova
· Личное сообщение · #22

Intel Core2Duo E6400 (2.13 Ghz)
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 0.107460 s
  8. avr: 0.006716 s
  9. spd: 2382 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 0.108375 s
  13. avr: 0.006773 s
  14. spd: 2362 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 0.107014 s
  18. avr: 0.006688 s
  19. spd: 2392 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 0.154240 s
  23. avr: 0.009640 s
  24. spd: 1660 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 0.119730 s
  28. avr: 0.007483 s
  29. spd: 2138 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 0.154792 s
  33. avr: 0.009674 s
  34. spd: 1654 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 0.162193 s
  38. avr: 0.010137 s
  39. spd: 1578 mb/s
  40.  
  41. movsd:
  42. ttl: 0.142173 s
  43. avr: 0.008886 s
  44. spd: 1801 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 0.144590 s
  48. avr: 0.009037 s
  49. spd: 1771 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 0.154964 s
  53. avr: 0.009685 s
  54. spd: 1652 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 0.160239 s
  58. avr: 0.010015 s
  59. spd: 1598 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 0.160614 s
  63. avr: 0.010038 s
  64. spd: 1594 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 0.263947 s
  68. avr: 0.016497 s
  69. spd: 970 mb/s





Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 16 февраля 2010 03:46 · Поправил: DrGolova
· Личное сообщение · #23

Слишком короткий тест. Нужно минут на 5 чтобы влияние торентов и прочего хлама свести к минимуму.
А то почти все результаты тянут на книгу гинесса (ку!)




Ранг: 199.6 (ветеран), 12thx
Активность: 0.10
Статус: Участник
www.uinc.ru

Создано: 16 февраля 2010 04:06
· Личное сообщение · #24

Ога, i5/i7 выходят одинаковыми если множить на чистоту. Но i5 выигрывают по tdp и по цене. так и з0пишем. Кстати никому не нужен старенький c2d со всеми наворотами за 300 евриков с самовывозом?



Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

Создано: 16 февраля 2010 04:33
· Личное сообщение · #25

сравним тест на тест?

P.S. тест не мой

28f0_15.02.2010_CRACKLAB.rU.tgz - memcopy2.exe



Ранг: 60.6 (постоянный), 20thx
Активность: 0.070
Статус: Участник

Создано: 16 февраля 2010 05:41 · Поправил: s0l
· Личное сообщение · #26

Со второго теста:




Ранг: 74.1 (постоянный), 34thx
Активность: 0.030
Статус: Участник

Создано: 16 февраля 2010 08:18
· Личное сообщение · #27

со второго




Ранг: 6.8 (гость)
Активность: 0.010
Статус: Участник

Создано: 16 февраля 2010 08:49
· Личное сообщение · #28

Pentium Dual Core E5200 (2.5GHz)
Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 0.125253 s
  8. avr: 0.007828 s
  9. spd: 2044 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 0.124655 s
  13. avr: 0.007791 s
  14. spd: 2054 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 0.121486 s
  18. avr: 0.007593 s
  19. spd: 2107 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 0.184123 s
  23. avr: 0.011508 s
  24. spd: 1390 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 0.138457 s
  28. avr: 0.008654 s
  29. spd: 1849 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 0.187400 s
  33. avr: 0.011713 s
  34. spd: 1366 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 0.189379 s
  38. avr: 0.011836 s
  39. spd: 1352 mb/s
  40.  
  41. movsd:
  42. ttl: 0.176124 s
  43. avr: 0.011008 s
  44. spd: 1454 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 0.176846 s
  48. avr: 0.011053 s
  49. spd: 1448 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 0.183867 s
  53. avr: 0.011492 s
  54. spd: 1392 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 0.194985 s
  58. avr: 0.012187 s
  59. spd: 1313 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 0.189173 s
  63. avr: 0.011823 s
  64. spd: 1353 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 0.241433 s
  68. avr: 0.015090 s
  69. spd: 1060 mb/s




Ранг: 146.7 (ветеран), 1thx
Активность: 0.070
Статус: Участник

Создано: 16 февраля 2010 09:43
· Личное сообщение · #29

Core i7 920 OC 4Ghz

Code:
  1. buffer size = 16777216 Bytes
  2. number of copy operation = 16
  3. preparing...
  4. start!
  5.  
  6. mmx_memcpy_asm:
  7. ttl: 0.034625 s
  8. avr: 0.002164 s
  9. spd: 7394 mb/s
  10.  
  11. mmx_memcpy:
  12. ttl: 0.034272 s
  13. avr: 0.002142 s
  14. spd: 7470 mb/s
  15.  
  16. memcpy_huge:
  17. ttl: 0.038031 s
  18. avr: 0.002377 s
  19. spd: 6731 mb/s
  20.  
  21. sse_memcpy_asm:
  22. ttl: 0.046487 s
  23. avr: 0.002905 s
  24. spd: 5507 mb/s
  25.  
  26. sse_memcpy_asm2:
  27. ttl: 0.033138 s
  28. avr: 0.002071 s
  29. spd: 7725 mb/s
  30.  
  31. sse_memcpy:
  32. ttl: 0.046550 s
  33. avr: 0.002909 s
  34. spd: 5499 mb/s
  35.  
  36. sse_memcpy_u:
  37. ttl: 0.047051 s
  38. avr: 0.002941 s
  39. spd: 5441 mb/s
  40.  
  41. movsd:
  42. ttl: 0.039692 s
  43. avr: 0.002481 s
  44. spd: 6450 mb/s
  45.  
  46. RtlCopyMemory:
  47. ttl: 0.039815 s
  48. avr: 0.002488 s
  49. spd: 6430 mb/s
  50.  
  51. memcpy_s:
  52. ttl: 0.046546 s
  53. avr: 0.002909 s
  54. spd: 5500 mb/s
  55.  
  56. for loop (dword):
  57. ttl: 0.060943 s
  58. avr: 0.003809 s
  59. spd: 4201 mb/s
  60.  
  61. while loop (dword):
  62. ttl: 0.061031 s
  63. avr: 0.003814 s
  64. spd: 4195 mb/s
  65.  
  66. for loop (byte):
  67. ttl: 0.139331 s
  68. avr: 0.008708 s
  69. spd: 1837 mb/s






Ранг: 47.1 (посетитель), 2thx
Активность: 0.030
Статус: Участник

Создано: 16 февраля 2010 11:24
· Личное сообщение · #30

На сколько я понял, второй тест измеряет время при помощи rdtsc - что менее точно чем QueryPerfomanceCounter, изза этого результаты различаются, но тенденция остается таже.


. 1 . 2 . >>
 eXeL@B —› Программирование —› самый быстрый memcpy
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати