powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / string.GetHashCode() - нужна альтернатива, гарантирующая результат
6 сообщений из 81, страница 4 из 4
string.GetHashCode() - нужна альтернатива, гарантирующая результат
    #39558501
Фотография _Novichok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T_Novichokпропущено...

Быстро, но не надежно
Уже неоднократно написали что любой алгоритм хэша будет ненадежным идентификатором.
Совпадение хэша двух строк означает что строки вероятно одинаковы. И вероятность тем выше, чем выше битность хэша.
Т.е. строки равны при совпадении 128 бит MD5 намного вероятнее чем 32 бита GetHashCode(). Но 100% совпадения исходных строк ни один хэш не гарантирует.

PS Заменил у себя функцию 64-битного хэша (брал половину MD5) на эту 20972692 . Обработка 700 тыс. строк стала быстрее на 1.4 сек.
Применял разные алгоритмы создания хеша, но они только замедляют работу. А скорость в данном приложении критически важная. Увы, 1.4 сек - это очень и очень мало
Решили немного пожертвовать памятью и хранить сами строки
...
Рейтинг: 0 / 0
string.GetHashCode() - нужна альтернатива, гарантирующая результат
    #39558502
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Novichok,
1. Тебе не я, а профи советовали новый топик.
2. Ссылку прочёл выше?
...
Рейтинг: 0 / 0
string.GetHashCode() - нужна альтернатива, гарантирующая результат
    #39558526
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Novichokда что же вы к слову "хеш-код" прицепились?
Потому что ты сам опять пишешь:
_Novichokбыстро и надежно захешировать строку.то есть ты не хочешь признать неправоту при использовании термина и упорно продолжаешь его нам тулить
...
Рейтинг: 0 / 0
string.GetHashCode() - нужна альтернатива, гарантирующая результат
    #39558573
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_NovichokПо делу батенька, по делу: предложите новый способ быстро и надежно захешировать строку.

Судя по тому, что ты пишешь, ты сначала разберись что такое хеш вообще, прежде чем говорить про "быстро и надёжно". А то мозги колупаешь тут сам не зная чего хочешь.
...
Рейтинг: 0 / 0
string.GetHashCode() - нужна альтернатива, гарантирующая результат
    #39558605
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_NovichokDima Tпропущено...

Уже неоднократно написали что любой алгоритм хэша будет ненадежным идентификатором.
Совпадение хэша двух строк означает что строки вероятно одинаковы. И вероятность тем выше, чем выше битность хэша.
Т.е. строки равны при совпадении 128 бит MD5 намного вероятнее чем 32 бита GetHashCode(). Но 100% совпадения исходных строк ни один хэш не гарантирует.

PS Заменил у себя функцию 64-битного хэша (брал половину MD5) на эту 20972692 . Обработка 700 тыс. строк стала быстрее на 1.4 сек.
Применял разные алгоритмы создания хеша, но они только замедляют работу. А скорость в данном приложении критически важная. Увы, 1.4 сек - это очень и очень мало
Решили немного пожертвовать памятью и хранить сами строки
1.4 сек сэкономлено из 5.3 сек на задаче где в т.ч. чтение из БД идет.

Вот замеры этого хэша 20817721 , поиск уникальных строк многопоточно идет со скоростью 200+ Мб/сек.

ИМХО если тебе действительно скорость важна, то расписывай всю задачу, а не ту маленькую часть, которая по твоему мнению может ускорить решение.

Кроме хэшей есть еще много чего интересного, например фильтр Блума возможно ускорит решение твоей задачи.
...
Рейтинг: 0 / 0
string.GetHashCode() - нужна альтернатива, гарантирующая результат
    #39558881
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Программирование всегда компромисс.

Если строк обрабатывается очень много, то ничего страшного, если некоторые не будут обработаны.
===========
В качестве хэша для данной задачи предлагаю структуру из трех обычных хэшей и длины строки :

Получить обычный кэш.
Делить строку на две и делать еще два.
...
Рейтинг: 0 / 0
6 сообщений из 81, страница 4 из 4
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / string.GetHashCode() - нужна альтернатива, гарантирующая результат
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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