|
|
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Няшикt := PChar(Name); Здесь будет вызов метода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 11:37:32 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Няшик, Попробуй хешировать не "Text", а что-то наподобие "Some text value" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 11:55:53 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, А тебя неявный try/finally не смущает? )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:01:59 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUА тебя неявный try/finally не смущает? )) Меня ещё и передача управляемого типа в инлайновую функцию смущает :) А это более серьёзно, чем пропущеный const. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:18:46 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Почему смущает? Он же там как константа выступает. Если функция короткая, как у ТС, - то самое то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:21:14 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUПочему смущает? Потому-что на XE2-XE5 это приведёт к раздуванию кода (как раз вставка дополнительных UStrAddRef/UStrClr) из-за бага компилятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:25:26 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Даже в случае const? Ты уверен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:30:37 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUДаже в случае const? Ты уверен? В любом случае. Я бы дал ссылку на QC, но эти редиски его похерили, поэтому вот . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:34:27 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyВ любом случае Есть, правда, маленька оговорка. Если переданный параметр управляемого типа внутри функции чему-то присваивается, то ошибка не проявляется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:35:46 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Очень жёстко. Правда у автора Берлин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 12:44:09 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUПравда у автора Берлин Ну вот захочет собрать на старье - сюрприз будет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 13:00:34 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
в XE2 ввели функцию вычисления хеша BobJenkinsHash, которая работает быстро и дает наромальные хеши. зачем изобретать велосипед? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 13:18:25 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
b0rkкоторая работает быстро ой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 13:31:45 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
b0rk, Человеку свойственно производить средства, позволяющие быстрее и дешевле удовлетворять его потребности. Поэтому такие вещи как оптимизации всегда будут в цене. При прочих равных клиент выберет что быстрее, даже если это быстрее на 5%. В случае хеш таблиц, вычисление хеша - одна из затратных частей, выражающаяся как в скорости функции, так и в проценте коллизий, которые она даёт. Стандартная функция неплоха, но она очень мудрёная, от того и выполняется медленнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 13:36:31 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Kazantsev AlexeyНяшикt := PChar(Name); Здесь будет вызов метода. Да, будет - смотрел отладку... Но, однако это быстро работает. И рассчитана как раз на inline SOFT FOR YOUНяшик, Попробуй хешировать не "Text", а что-то наподобие "Some text value" Я изучил твой метод, и в нём понятно что ты по 43 символа кушаешь. Но однако я решил на 255 + 1 символов отгенерить код в case, а это достаточно быстрее работает даже в 3 раза чем прошлый вариант мой с PChar. (С учётом того что функция не будет вызывается в 100 местах, а всего лишь в 1 ... То удовлетворяет inline) Kazantsev AlexeySOFT FOR YOUПочему смущает? Потому-что на XE2-XE5 это приведёт к раздуванию кода (как раз вставка дополнительных UStrAddRef/UStrClr) из-за бага компилятора. Ну славу богу что я НЕ разу не ставил себе их, и не собираюсь.. А вот насчёт const я тестировал. По asm коду вообще без изменений.. b0rkв XE2 ввели функцию вычисления хеша BobJenkinsHash, которая работает быстро и дает наромальные хеши. зачем изобретать велосипед? Потому что она самая медленная из всех что сегодня тут было.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 13:51:57 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Няшик, Так а какие результаты по "Some text value"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 14:15:35 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
НяшикПотому что она самая медленная из всех что сегодня тут было.. ну конечно, остальные проблемы уже решены ведь ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 14:19:41 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUb0rk,Человеку свойственно производить средства, позволяющие быстрее и дешевле удовлетворять его потребности. Поэтому такие вещи как оптимизации всегда будут в цене. При прочих равных клиент выберет что быстрее, даже если это быстрее на 5%.Юное прекраснодушие! Вот только в реальной жизни выбирают более надежное и дешёвое в сопровождении. По большому счету, юзеру до лампочки сохраняется документ 10 секунд или 11. Иначе можно получить самый быстрый продукт, которым никто не будет пользоваться из-за багов, в которых сам автор не может разобраться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 14:50:30 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, Так а какие результаты по "Some text value"? 0.158955 сек. 455682125 Код: pascal 1. 2. 3. 4. 5. .............. 0.220384 сек. 684849697 Код: pascal 1. 2. 3. 4. 5. Но с учётом коллизий, они будут ровны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 14:59:02 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
white_niggerSOFT FOR YOUb0rk,Человеку свойственно производить средства, позволяющие быстрее и дешевле удовлетворять его потребности. Поэтому такие вещи как оптимизации всегда будут в цене. При прочих равных клиент выберет что быстрее, даже если это быстрее на 5%.Юное прекраснодушие! Вот только в реальной жизни выбирают более надежное и дешёвое в сопровождении. По большому счету, юзеру до лампочки сохраняется документ 10 секунд или 11. Иначе можно получить самый быстрый продукт, которым никто не будет пользоваться из-за багов, в которых сам автор не может разобраться Вон в notepad++ куча багов находят, и ничего... А он разрабатывается с 2003 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 15:02:41 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
white_nigger, Я же сказал при прочих равных. А так разумеется, человека в первую очередь интересует, будет ли удобный ему функционал в продукте или нет. В конечном счёте клиента интересуют потраченное время и силы. Если у двух продуктов удобство нужных ему функций равно, а скорость работы нет - то предпочтение отдадут самому быстрому из них ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 15:18:52 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Няшик, А с чего ты взял, что коллизий в твоём варианте будет меньше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2017, 15:19:58 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUНяшик, А с чего ты взял, что коллизий в твоём варианте будет меньше? SOFT FOR YOUКоллизий немного больше, зато скорость хеша несравнимая. Хотя сейчас протестировал, и по 2 миллиарда генерируемых разных букв длиной от 5 до 30 не разу не совпали. Как и на том алгоритме.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:49:15 |
|
||
|
Варианты колизий хэш функции
|
|||
|---|---|---|---|
|
#18+
Няшик, Ты не правильно тестируешь. Надо не чистый хеш брать, а находить остаток от деления. Если размер таблицы 1024 элемента, то вместимость принято считать 3/4, т.е. 768 элементов. Генерируешь 768 элементов, и тогда Index = Hash and 1023. Вот коллизию индексов и считай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.06.2017, 12:56:43 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39468646&tid=2042168]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 192ms |
| total: | 366ms |

| 0 / 0 |
