|
|
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyА подумать? Идентификаторы сессий/объектов/дачегоугодновообще на сервере. Integer? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 19:14:22 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkovСейчас проверил на своем примере, с при подстановке компаратора с Седжвиком, поиск стал медленнее в 1.5 раза Ничего удивительного. Дефолтный Дженкинс тоже очень хороший хеш. Кстати, в твоём примере словарь слишком маленький, выгоднее было бы захардкодить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 19:14:29 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
У меня простейший словарь: таблица + цепочки. Использую простые числа для размерности таблицыю Юзается Elf. Прикол в правильном подборе размера таблицы. Рядом стоящие простые числа могут давать (на моих данных) от 0 до нескольких тысяч коллизий. Мурмуры, дженкинсы, crc, дотнетовские варианты более устойчивы к размеру таблицы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 19:21:39 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUInteger? Слишком маленький диапазон значений. Большая вероятность коллизий при генерации на разных машинах. А вообще, рандомные ключи удобны для твоего хеша - на них коллизий мало (в последнем варианте). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 19:31:14 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
white_niggerУ меня простейший словарь: таблица + цепочки. У меня первая версия тоже с цепочками была. Но тут есть одна проблема - невозможно гарантировать отсутствие реаллокаций после задания вместимости (capacity) таблицы. В таблице с прямой адресацией такая возможность есть + есть возможность делать перестроение таблицы тоже без реаллокаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 19:34:56 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovА ведь кто-то может утащить в копилку алгоритм с ошибой ) Вот тут правильный Седжвик :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 19:39:29 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyasviridenkovСейчас проверил на своем примере, с при подстановке компаратора с Седжвиком, поиск стал медленнее в 1.5 раза Ничего удивительного. Дефолтный Дженкинс тоже очень хороший хеш. Кстати, в твоём примере словарь слишком маленький, выгоднее было бы захардкодить. Нельзя захардкодить, смысл в том, что он может расширяться в процессе работы. Если для html это еще экзотика (хотя кастомные теги исключать нельзя) то для XML вообще каждый раз все свое. Я уже писал, что пока остановился на trie, для подобного набора коротких ключей, мне кажется это оптимальный вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 19:45:47 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#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. 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. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:02:26 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
x64: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:09:34 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUКак-то так :) Седжвик неправильный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:39:05 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeySOFT FOR YOUКак-то так :) Седжвик неправильный. Чего в нем не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:47:05 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Компа род рукой нет, чтобы проверить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:52:52 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
rgreatKazantsev Alexeyпропущено... Седжвик неправильный. Чего в нем не так? Верхний индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:54:15 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeySOFT FOR YOUКак-то так :) Седжвик неправильный. Точно. С нуля же надо начать x86: Код: plaintext 1. 2. 3. 4. x64: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 20:57:52 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 21:22:02 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUasviridenkov, Я тут для тебе кодогенерил Мне удалось объяснить, почему кодогенерация лучше хеша? Да, спасибо. Но как я уже писал, в моих ситуациях это не подходит, т.к. нужна расширяемость словаря. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 21:38:05 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkov, Ну у тебя константный набор тегов. В HTML вроде А для расширения - можно совмещать подходы. Вернула StrToHtmlTag значение tagUnknown - значит мутить что-то дальше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 21:41:31 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUasviridenkov, Ну у тебя константный набор тегов. В HTML вроде А для расширения - можно совмещать подходы. Вернула StrToHtmlTag значение tagUnknown - значит мутить что-то дальше Не константный, а усложнять городя иерархические конструкции - смысла нет, выигрыш на копейку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 22:33:00 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkov, Смысла как минимум в 10 раз Но правда я не знаю, насколько это актуально у тебя Ты же сам начал говорить про скорость хеша ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 22:56:19 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Хардкодинг при всей своей производительности хорош пока не вылез за пределы своей песочницы. В компаниях/промышленности он на фиг не упирался. Там другие критерии. Главное универсальность, расширяемость и главное стоимость сопровождения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 23:44:06 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUasviridenkov, Смысла как минимум в 10 раз Но правда я не знаю, насколько это актуально у тебя Ты же сам начал говорить про скорость хеша ) Про скорость хеша это я применительно к другим вещам говорил, иногда критична скорость добавления (не здесь). А в данном случае, ускорение в 10 раз даст не более 5 процентов во времени парсинга. Которое на порядок меньше времени расчета стилей, которое в свою очередь еще в разы меньше чем расчет layout-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2016, 00:27:52 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
white_nigger, Главное, использовать инструменты согласно задачам Микроскоп - для одного. Молоток - для другого. Ты же рассуждаешь о молотке как о лучшем инструменте для всех задач класса сферического коня в вакууме Сериализирующая кодогенерация нужна для максимально быстрой идентификации заранее известного набора строк. И со своей задачей оно справляется на отличненько, да так, что даже самый лучший хеш нервно курит в сторонке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2016, 00:31:13 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUы же рассуждаешь о молотке как о лучшем инструменте для всех задач класса сферического коня в вакуумеТы не понял меня. Перечитай ещё раз. А также подумай почему майкрософт, эмбаркадеро, и все столпы программирования предлагают эту парадигму, а не хардкодинг, который, повторю ещё раз, может встречаться глубоко внутри и ни разу наружу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2016, 00:44:07 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUы же рассуждаешь о молотке как о лучшем инструменте для всех задач класса сферического коня в вакуумеТы не понял меня. Перечитай ещё раз. А также подумай почему майкрософт, эмбаркадеро, и все столпы программирования предлагают эту парадигму, а не хардкодинг, который, повторю ещё раз, может встречаться глубоко внутри и ни разу наружу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2016, 00:44:08 |
|
||
|
|

start [/forum/topic.php?fid=58&startmsg=39369348&tid=2041988]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 224ms |
| total: | 466ms |

| 0 / 0 |
