Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
SiemarglПриврал. Проверил. Вдвое. На данных 10 3 3 2 2 1 1 1 2 2 3 3 у АМ 13 вызовов функций (не включая работу с вектором) у меня - 6 у АМ 0 (ноль) вызовов функций. Вызовы компилятор уберет. Если не веришь компиляторам - у него можно просто скопипастить весь код в main(), функции там только для для читаемости кода, с рекурсией это невозможно, так что 6:0, а не 6:13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 19:37 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Вы действительно хотите это видеть?? AM Код: pascal 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. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. Sie Код: pascal 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 19:48 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
mingw 4.7.1 mingw32-g++.exe -Wall -fexceptions -fomit-frame-pointer -O2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 20:02 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
SiemarglЧуть позже выложу ассемблер Для начала неплохо было бы исходник хотя бы выложить ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2016, 01:30 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglЧуть позже выложу ассемблер Для начала неплохо было бы исходник хотя бы выложить ))) Да хотелось подавану дать время самому подумать. Думаешь уже хватит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2016, 10:21 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySiemarglЧуть позже выложу ассемблер Для начала неплохо было бы исходник хотя бы выложить ))) Код: 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. Dima TSiemarglПриврал. Проверил. Вдвое. На данных 10 3 3 2 2 1 1 1 2 2 3 3 у АМ 13 вызовов функций (не включая работу с вектором) у меня - 6 у АМ 0 (ноль) вызовов функций. Вызовы компилятор уберет. Если не веришь компиляторам - у него можно просто скопипастить весь код в main(), функции там только для для читаемости кода, с рекурсией это невозможно, так что 6:0, а не 6:13. Я не верю =) ИМХО, у них от шаблонного объектного кода крыша съезжает. В простых случаях - нормально инлайнит и оптимизирует, но с сегодняшней модой на простые пятимерные шаблоны смотри сам, какой код генерится. Это типовой образец причем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2016, 22:14 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
SiemarglDima Tпропущено... у АМ 0 (ноль) вызовов функций. Вызовы компилятор уберет. Если не веришь компиляторам - у него можно просто скопипастить весь код в main(), функции там только для для читаемости кода, с рекурсией это невозможно, так что 6:0, а не 6:13. Я не верю =) ИМХО, у них от шаблонного объектного кода крыша съезжает. В простых случаях - нормально инлайнит и оптимизирует, но с сегодняшней модой на простые пятимерные шаблоны смотри сам, какой код генерится. Это типовой образец причем. ИМХУ не туда смотришь. При чем тут шаблоны? Замени vector<> на массив + немного кода и не будет шаблонов. vector<> тормознее обычного массива, не спорю. Но при необходимости его можно заменить на обычный массив. У меня так скомпилировалось MS VC 2015 Код: 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. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. Как видишь match_back() и erase_back() заинлайнились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 08:58 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Вот так твой код скомпилировался Код: 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. deflate() не инлайнится, т.к. рекурсия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 09:06 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dima T, Рекурсия, какая рекурсия? Где ты видишь рекурсивный вызов в ассемблере? =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 11:30 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
тут Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 11:36 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Господа, вам не стыдно сравнивать скорость кода который читает из потока и кода который работает с уже считанным массивом? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 14:27 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyГоспода, вам не стыдно сравнивать скорость кода который читает из потока и кода который работает с уже считанным массивом? ))) Это не принципиально. Оба кода в итоге прочитают массив целиком. Хотя можно было бы и не дочитывать. Мы же не секундомером мерим, а количество операций обсуждаем. PS Еще код Siemargl 18954238 неправильно считает. В принципе это тоже не важно :) Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 14:54 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dima TЭто не принципиально. Оба кода в итоге прочитают массив целиком. Хотя можно было бы и не дочитывать. Это принципиально. Потому что чтение например 1000 чисел займет несколько миллисекунд, а сам алгоритм их обработки - несколько микросекунд (что один что второй). Поэтому считать такты на вызовы функций, когда I/O на порядки медленнее - бессмысленная работа )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 15:18 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Dima T, Срочный сервис пак =) Код: plaintext 1. 2. С точки зрения практической выгоды, конечно дисковое чтение гораздо дольше. Но это пример, когда рекурсивный алгоритм короче и эффективнее. Причем оба компилятора оптимизировали хвостовую рекурсию. Чтение из потока дает небольшую добавку в инструкциях (хотя хз, почему MSVC дважды сгенерил этот кусок) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 16:47 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Хотя нет, GCC рекурсию оставил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 17:04 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Написал для сравнения с учетом вышеизложенных замечаний. (без функций, шаблонов и потокового чтения) Исходник Код: 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. в асме Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 17:32 |
|
||
|
Шарики(задача по программированию)
|
|||
|---|---|---|---|
|
#18+
Немного потестил. Тоже срочный сервиспак надо :) Код: 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. получилась тоже что и у тебя с рекурсией, только цикл вместо рекурсии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2016, 18:48 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2018575]: |
0ms |
get settings: |
12ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get first new msg: |
9ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 177ms |

| 0 / 0 |
