|
|
|
Линейный и бинарный поиски. Ликбез
|
|||
|---|---|---|---|
|
#18+
Создал программку под gcc на простой с-шке: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 1) Результаты после простой компиляции "gcc bsearch_test.c" shell$ ./a.exe 400 15000000 Binary search is about to start... Job proceeded 2.406000 seconds 2 seconds spended in system environment at all Binary (via macros) search is about to start... Job proceeded 5.094000 seconds 5 seconds spended in system environment at all Linear search is about to start... Job proceeded 22.891000 seconds 23 seconds spended in system environment at all Ничего удивительного, в макросе cmp таки не синлайнилась, хотя ее в этом попросили. Поэтому (да и потому, что библиотечный вызов УЖЕ откомпилирован) мы получаем Binary (via macros) медленнее,чем Binary в (5.094000-2.406000)/2.406000 раз. Линейный, ясно, в разы медленнее. 2) Результаты после оптимизированной компиляции "gcc -O3 bsearch_test.c" shell $ ./a.exe 400 15000000 Binary search is about to start... Job proceeded 2.235000 seconds 3 seconds spended in system environment at all Binary (via macros) search is about to start... Job proceeded 3.594000 seconds 4 seconds spended in system environment at all Linear search is about to start... Job proceeded 7.328000 seconds 8 seconds spended in system environment at all Это шок... С каких пор линейный поиск "легким движением руки" превратился в бинарный???Я не знаю ни инструкций процессора ни опций компилятора, что ведут к такому эффекту... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2010, 21:40 |
|
||
|
Линейный и бинарный поиски. Ликбез
|
|||
|---|---|---|---|
|
#18+
может он разложил это на несколько процессоров? линейный хорошо параллелится. Сделайте побольше данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2010, 15:54 |
|
||
|
Линейный и бинарный поиски. Ликбез
|
|||
|---|---|---|---|
|
#18+
guest1980Это шок... С каких пор линейный поиск "легким движением руки" превратился в бинарный???Я не знаю ни инструкций процессора ни опций компилятора, что ведут к такому эффекту... Как мне кажется, тесты построены немного некорректно. Чтобы сравнивать скорость поиска - во всех случаях нужно искать один и тот же набор чисел, в данном же случае "обстоятельства могут сложится удачно". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2010, 01:45 |
|
||
|
|

start [/forum/topic.php?fid=16&tid=1343334]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
201ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 249ms |
| total: | 548ms |

| 0 / 0 |
