powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Варианты колизий хэш функции
25 сообщений из 72, страница 2 из 3
Варианты колизий хэш функции
    #39468443
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшикt := PChar(Name);
Здесь будет вызов метода.
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468463
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,

Попробуй хешировать не "Text", а что-то наподобие "Some text value"
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468471
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

А тебя неявный try/finally не смущает? ))
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468489
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUА тебя неявный try/finally не смущает? ))
Меня ещё и передача управляемого типа в инлайновую функцию смущает :) А это более серьёзно, чем пропущеный const.
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468495
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Почему смущает? Он же там как константа выступает. Если функция короткая, как у ТС, - то самое то.
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468503
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUПочему смущает?
Потому-что на XE2-XE5 это приведёт к раздуванию кода (как раз вставка дополнительных UStrAddRef/UStrClr) из-за бага компилятора.
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468512
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Даже в случае const? Ты уверен?
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468517
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUДаже в случае const? Ты уверен?
В любом случае. Я бы дал ссылку на QC, но эти редиски его похерили, поэтому вот .
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468520
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyВ любом случае
Есть, правда, маленька оговорка. Если переданный параметр управляемого типа внутри функции чему-то присваивается, то ошибка не проявляется.
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468527
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Очень жёстко. Правда у автора Берлин
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468545
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUПравда у автора Берлин
Ну вот захочет собрать на старье - сюрприз будет :)
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468568
b0rk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в XE2 ввели функцию вычисления хеша BobJenkinsHash, которая работает быстро и дает наромальные хеши.
зачем изобретать велосипед?
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468584
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
b0rkкоторая работает быстро
ой.
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468589
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
b0rk,

Человеку свойственно производить средства, позволяющие быстрее и дешевле удовлетворять его потребности. Поэтому такие вещи как оптимизации всегда будут в цене. При прочих равных клиент выберет что быстрее, даже если это быстрее на 5%. В случае хеш таблиц, вычисление хеша - одна из затратных частей, выражающаяся как в скорости функции, так и в проценте коллизий, которые она даёт. Стандартная функция неплоха, но она очень мудрёная, от того и выполняется медленнее.
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468613
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, которая работает быстро и дает наромальные хеши.
зачем изобретать велосипед?

Потому что она самая медленная из всех что сегодня тут было..
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468646
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,

Так а какие результаты по "Some text value"?
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468653
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
НяшикПотому что она самая медленная из всех что сегодня тут было..

ну конечно, остальные проблемы уже решены ведь !
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468704
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUb0rk,Человеку свойственно производить средства, позволяющие быстрее и дешевле удовлетворять его потребности. Поэтому такие вещи как оптимизации всегда будут в цене. При прочих равных клиент выберет что быстрее, даже если это быстрее на 5%.Юное прекраснодушие! Вот только в реальной жизни выбирают более надежное и дешёвое в сопровождении. По большому счету, юзеру до лампочки сохраняется документ 10 секунд или 11. Иначе можно получить самый быстрый продукт, которым никто не будет пользоваться из-за багов, в которых сам автор не может разобраться
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468718
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUНяшик,

Так а какие результаты по "Some text value"?

0.158955 сек.
455682125

Код: pascal
1.
2.
3.
4.
5.
    str := 'Some text value';
    for I := 0 to 10000000 - 1 do
    begin
      src := RapidHashCode_UStr(str);
    end;




..............


0.220384 сек.
684849697

Код: pascal
1.
2.
3.
4.
5.
    str := 'Some text value';
    for I := 0 to 10000000 - 1 do
    begin
      src := RSHashInline(str);
    end;



Но с учётом коллизий, они будут ровны
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468725
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerSOFT FOR YOUb0rk,Человеку свойственно производить средства, позволяющие быстрее и дешевле удовлетворять его потребности. Поэтому такие вещи как оптимизации всегда будут в цене. При прочих равных клиент выберет что быстрее, даже если это быстрее на 5%.Юное прекраснодушие! Вот только в реальной жизни выбирают более надежное и дешёвое в сопровождении. По большому счету, юзеру до лампочки сохраняется документ 10 секунд или 11. Иначе можно получить самый быстрый продукт, которым никто не будет пользоваться из-за багов, в которых сам автор не может разобраться

Вон в notepad++ куча багов находят, и ничего... А он разрабатывается с 2003
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468747
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

Я же сказал при прочих равных. А так разумеется, человека в первую очередь интересует, будет ли удобный ему функционал в продукте или нет. В конечном счёте клиента интересуют потраченное время и силы. Если у двух продуктов удобство нужных ему функций равно, а скорость работы нет - то предпочтение отдадут самому быстрому из них
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39468749
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,

А с чего ты взял, что коллизий в твоём варианте будет меньше?
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39469399
Няшик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOUНяшик,

А с чего ты взял, что коллизий в твоём варианте будет меньше?

SOFT FOR YOUКоллизий немного больше, зато скорость хеша несравнимая.

Хотя сейчас протестировал, и по 2 миллиарда генерируемых разных букв длиной от 5 до 30 не разу не совпали. Как и на том алгоритме..
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39469408
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Няшик,

Ты не правильно тестируешь. Надо не чистый хеш брать, а находить остаток от деления. Если размер таблицы 1024 элемента, то вместимость принято считать 3/4, т.е. 768 элементов.

Генерируешь 768 элементов, и тогда Index = Hash and 1023. Вот коллизию индексов и считай
...
Рейтинг: 0 / 0
Варианты колизий хэш функции
    #39469442
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на самом деле по барабану и то, и другое,
т.к. важны не коллизии и скорость хеш-функции в вакууме,
а скорость работы хеш-таблицы в конкретном приложении
...
Рейтинг: 0 / 0
25 сообщений из 72, страница 2 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Варианты колизий хэш функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]