|
|
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
причем чем-то таким, чтобы это еще в базе можно было бы выгрузить в готовом виде. А не так чтобы в коде еще шерстить. Это вариант, если не получится из базы достать готовый. Может есть какие то стандартные функции хеширования в инт для дельфи и мсскл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2016, 17:33:22 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
CRC32 же! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2016, 17:59:31 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
В современных делфях хэшей вагон и маленькая тележка. Даже модуль специальный есть. А ТС упорно игнорирует совет почитать матчасть чтоб представлять что это и с чем его едят... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2016, 18:14:05 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Кстати, я тут небольшой тест сделал TDictionary<string, object> c Trie. Содержимое - список тегов HTML, прогоняется много раз поиск всего списка в словаре. Получается, что на поиске trie дает где-то 40% выигрыша. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2016, 23:46:03 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Частный случай всегда быстрей чем универсалка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:01:31 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
rgreatЧастный случай всегда быстрей чем универсалка. Ага, конечно. Сравни TStringList c TDictionary ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:19:49 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkov, TStringList не оптимизирован на поиск ключей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:23:14 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkovКстати, я тут небольшой тест сделал TDictionary<string, object> c Trie. Содержимое - список тегов HTML, прогоняется много раз поиск всего списка в словаре. Получается, что на поиске trie дает где-то 40% выигрыша.Пример выложить можешь? Хочу свой словарик сравнить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:34:28 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkovКстати, я тут небольшой тест сделал TDictionary<string, object> c Trie. Содержимое - список тегов HTML, прогоняется много раз поиск всего списка в словаре. Получается, что на поиске trie дает где-то 40% выигрыша. Просто TDictionary невероятный тормоз. У меня хеш-таблица построенная по аналогичному алгоритму (открытая адресация с линейным пробированием) тоже уделывает TDictionary. На рандомных ключах (GUID) на 97%, на ключах с последовательно изменяющейся частью (index1 .. 1000000) на 159%, на английском словаре на 46%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:41:48 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkovАга, конечно. Сравни TStringList c TDictionary На длинных ключах стринглист надерёт словарю жопу ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:43:24 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
white_nigger, он совсем простой Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:48:34 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyasviridenkovАга, конечно. Сравни TStringList c TDictionary На длинных ключах стринглист надерёт словарю жопу ;) На малом числе строк, в принципе тоже должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:50:35 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyasviridenkovКстати, я тут небольшой тест сделал TDictionary<string, object> c Trie. Содержимое - список тегов HTML, прогоняется много раз поиск всего списка в словаре. Получается, что на поиске trie дает где-то 40% выигрыша. Просто TDictionary невероятный тормоз. У меня хеш-таблица построенная по аналогичному алгоритму (открытая адресация с линейным пробированием) тоже уделывает TDictionary. На рандомных ключах (GUID) на 97%, на ключах с последовательно изменяющейся частью (index1 .. 1000000) на 159%, на английском словаре на 46%. А хэш какой - CRC32? Ты софлкомплетовскую реализацию Hashrie за основу брал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:52:16 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkovА хэш какой - CRC32? Ты софлкомплетовскую реализацию Hashrie за основу брал? Хеш Седжвика. За основу брал голый алгоритм таблицы с открытой адресацией, т.к. он самый простой и удовлетворяет некоторым дополнительным условиям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 00:55:24 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
На ноуте несколько проходов: TDictionary ~3678 TdxNamedObjectDictionary ~2266 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 01:15:19 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
А вообще для таких небольших константных словариков легко идеальный хэш подобрать и сделать специализированный словарь - ещё быстрее будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 01:22:06 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
white_niggerНа ноуте несколько проходов: TDictionary ~3678 TdxNamedObjectDictionary ~2266 Ну вот у меня на простейшем Trie ровно такой же результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 01:27:19 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkovКстати, я тут небольшой тест сделал TDictionary<string, object> c Trie. Содержимое - список тегов HTML, прогоняется много раз поиск всего списка в словаре. Получается, что на поиске trie дает где-то 40% выигрыша. А ты сравни с CachedSerializer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 01:40:57 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
серчерпричем чем-то таким, чтобы это еще в базе можно было бы выгрузить в готовом виде. А не так чтобы в коде еще шерстить. Это вариант, если не получится из базы достать готовый. Может есть какие то стандартные функции хеширования в инт для дельфи и мсскл? Ты меня начинаешь подбешивать TDictionary, когда ключ строка - уже автоматически все делает За тебя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 01:42:26 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUasviridenkovКстати, я тут небольшой тест сделал TDictionary<string, object> c Trie. Содержимое - список тегов HTML, прогоняется много раз поиск всего списка в словаре. Получается, что на поиске trie дает где-то 40% выигрыша. А ты сравни с CachedSerializer Я же тест выложил, запусти и сравни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 01:44:11 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Быстрый хэшик для строки. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 03:17:39 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
rgreat, Ты всерьез думаешь что это быстрее CRC32? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 03:24:31 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkov, Проверил, быстрей. А еще говорят дает меньше коллизов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 03:32:13 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
rgreatasviridenkov, Проверил, быстрей. А еще говорят дает меньше коллизов. Насколько быстрее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 03:41:57 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkov, Код: 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. 953 vs 797 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2016, 03:44:13 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39369096&tid=2041988]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 477ms |

| 0 / 0 |
