|
|
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 19:23 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
до этого индексы взял неправильные, теперь с первого элемента 8 байт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 19:27 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
cptngrb, Код: pascal 1. 2. 3. 4. 5. 6. Фикс функции 1409604122707721 Новая функция Convert2 1409604122707721 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 19:47 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
cptngrb, Код: pascal 1. 2. 3. 4. 5. Фикс функции 360858655413176578 Новая функция Convert2 360858655413176578 Код: pascal 1. 2. 3. 4. 5. Фикс функции 360858655413176623 Новая функция Convert2 360858655413176623 ...То есть 47 это 8 элемент для 1 и 7 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 19:52 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
В общем учёл твои пожелания. Вот Код: 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. Код: pascal 1. 2. 3. 4. Теперь она работает точно так же как твоя функция в стоке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:15 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
прогоню профайлером, посмотрю насколько быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:42 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
cptngrb, Для 64 бита должно быть многократно быстрее, ибо Код: pascal 1. 2. 3. 4. 5. 6. Это в общем то вся функция. А вот для 32 бита надо аналогично написать, а в 32 бите я плохо ассемблер знаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:45 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. x86 Код: plaintext 1. 2. 3. 4. x64 Код: plaintext 1. 2. 3. Гы-гы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:46 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
rgreat, Тест Г ибо не имеет ничего общего с измерением скорости. Когда в общий asm лист навален весь код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:49 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:55 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
rgreat, Кхм. Код: 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. Нормальный Качественный и объективный тест 64bit Test_to_num2 385577 Test_to_num 3362881 32bit Test_to_num2 2012273 Test_to_num 3879562 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:58 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
rgreat, Функция даже без asm быстрее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 20:59 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Собрал все функции из топика. И моя функция настоящий лидер! Код: 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. 64 bit Test_to_numASMPolesov : 767533 Test_to_num2 : 352728 Test_to_num : 915065 32 bit Test_to_num2 : 875247 Test_to_num : 3017126 Функция _Vasilisk_ так и не захотела работать никак. По этому Я изначально и сказал что она работать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 21:15 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Оказалось что Test_to_numASMPolesov вообще даже не конкурент, там совсем другие значения Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Код: sql 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 21:29 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Ого на сколько быстрее, нашёл вывод в сек 65bit Test_to_num : 2.545933 Test_to_num2 : 0.802596 32bit Test_to_num : 11.633120 Test_to_num2 : 3.001649 Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 21:49 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Оказалось что Test_to_numASMPolesov вообще даже не конкурент, там совсем другие значения Там третьей строчкой надо добавить Код: powershell 1. ВсеРазумный Код: powershell 1. Та же самая ошибка, что и у меня - возможно чтение за границами массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 22:21 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Polesov Там третьей строчкой надо добавить Добро пожаловать в строй! Код: 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. 64bitTest_to_numASMPolesov2.201521Test_to_num3.024955Test_to_num20.899982 Быстрее, но не быстрее чем моя Polesov Та же самая ошибка, что и у меня - возможно чтение за границами массива. Если только сам автор её не сделает, ибо код равен Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 22:30 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
ВсеРазумныйPolesovТа же самая ошибка, что и у меня - возможно чтение за границами массива.Если только сам автор её не сделаетПараметры функции, если не ошибаюсь, ссылка на массив байт, начальный и конечный индексы массива. Так? Пример: массив из 10 элементов array[0 .. 9] of byte; Индексы с 7 по 9 (3 байта) Вопрос: Код: powershell 1. откуда будет произведено чтение 8 байт? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 23:16 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Polesov, Так сам автор сказал, что он не собирается читать больше 8 байт. И у него есть определённая информация по количеству байтов, которые он может прочитать. Цитата cptngrb ВсеРазумный Зачем вообще передавать 18??? Если у тебя уже определена начальная позиция массива. потому что могу) Ограничение можно поставить, X MOD 9 но надо ли оно? Так что в ногу выстрелить, можно... Но получиться ли, если человек даёт правильные данные ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 23:25 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Polesov, Так сам автор сказал, что он не собирается читать больше 8 байт. И у него есть определённая информация по количеству байтов, которые он может прочитать. Цитата cptngrb пропущено... потому что могу) Ограничение можно поставить, X MOD 9 но надо ли оно? Так что в ногу выстрелить, можно... Но получиться ли, если человек даёт правильные данные ? Э-э-э... Дело не в том, что автор "не собирается читать больше 8 байт". Дело в том, что при в приведенном мной примере надо прочитать последние 3 байта массива, а будет произведено чтение 8 байт, 5 из которых за границами массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 23:29 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Polesov, С чего ради будет произведено чтение 8 байт? Когда будет произведено чтение 2 байт + 1 байт первого элемента, в итоге 3 байта Код: pascal 1. Код: 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. ... Отредактировал, убрав лишний код тестирования ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 23:36 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Arr - массив из 10 байт [0 .. 9] Pos - 7-й элемент массива ВсеРазумный Код: powershell 1. 2. 3. 4. Сколько всего байт будет прочитано в RAX? Откуда будут прочитаны старшие 5 байт? P.S. Ну, я уже не знаю, как объяснить ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 23:50 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
Polesov, Тогда тут тоже будет ошибка Код: pascal 1. А значит, надо просто следить за тем, какой размер массива -какая позиция, и максимальная длина массива. То есть проблема не ASM кода, а проблема глобальная. Хочу кстати подметить, что проблема решается во всех случаях, обзаведясь ещё одним аргументом - максимальной длины. А так, никак не решается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2020, 23:59 |
|
||
|
Ускорить функцию перевода массива байт в число
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Хочу кстати подметить, что проблема решается во всех случаях, обзаведясь ещё одним аргументом - максимальной длины. А так, никак не решается Решается. Например, побайтовым чтением элементов массива. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Но скорость будет ниже, естественно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.02.2020, 00:16 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39929851&tid=2038559]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
158ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
3ms |
| others: | 230ms |
| total: | 512ms |

| 0 / 0 |
