Знаете ли вы хорошую и бесплатную реализацию Hashtable для Delphi 5?
Мне нужно организовать огромное количество данных в хранилище, и меня немного беспокоят проблемы с утечкой памяти, которые я обнаружил в большинстве доступных реализаций в Интернете.
Tks





Нет. Я использую TList, TStringList или TClientDataSet + BinarySearch в случае огромного количества данных.
Можно попробовать поискать в Кодерс.
Здесь у вас простая реализация (Winjab проект), или это от JCL.
ПРИМЕЧАНИЕ. Перед использованием ознакомьтесь с лицензионными кодами.
EZDSL - это библиотека структур данных, включая хэш-таблицу, написанная Джулианом Бакнеллом из TurboPower и DevExpress ... Я не использовал их, но я возлагал большие надежды на код этого парня.
http://www.boyet.com/FixedArticles/EZDSL.html
Я много лет использовал EZDSL с приложениями, упакованными в термоусадочную пленку, и код очень хороший. Хорошая производительность, никаких проблем с утечкой памяти.
Можете попробовать мой GpStringHash. Гарантированно отсутствие утечек памяти, но работает только со строками. У меня считать должно работать в D5.
Вы также можете ознакомиться с открытым исходным кодом / ранее коммерческим TurboPower SysИнструменты. Не уверен, насколько он обновляется. В какой-то момент Джулиан Бакналл рекомендовал его вместо своего Библиотека EZDSL, хотя это было еще тогда, когда он еще работал над TurboPower, и он поддерживался / обновлялся.
Собственно Turbo-Powers LockBox это наверное то, что он хочет, последняя версия обновлена по адресу songbeamer.com/delphi
LockBox выполняет криптографическое хеширование - SysTools и EZDSL создают хэш-таблицы, которые представляют собой структуру данных.
Питер Белов только что опубликовал переработку того, что он сделал для новых групп Embarcadero, в public.attachments. В его профиле на сайте CodeGear по адресу http://cc.codegear.com/Item/24825 есть что-то, что описывает это.
Оформить заказ DeCAL, который включает хеш-таблицы и другие структуры данных.
Помимо фактической реализации хеш-таблицы, также важна сама хеш-функция.
Хорошая - хеш-функция от Боба Дженкинса, прочтите его статью здесь.
Этот алгоритм был недавно улучшен для случаев, когда входные данные имеют размер DWord (Смотрите C-версию здесь). Эта версия работает быстрее и дает два 32-битных хеш-значения вместо одного. (Это второе хеш-значение можно использовать, например, для ускорения выбора в ведре.)
Для тех, кому интересно, можно сюда вставить Delphi-перевод? (Это примерно 170 строк кода.)
RBS Antidot - очень хорошая библиотека контейнеров (включая UnsortedMap на основе хешей).
Мы пробовали реализацию, предоставленную benya.com, но столкнулись с некоторыми проблемами утечки памяти. Вы пробовали второй? Спасибо за ответ