Безопасно ли использовать идеальную хеш-функцию, сгенерированную gperf? - PullRequest
1 голос
/ 25 марта 2011

Сейчас я рассматриваю возможность использования сгенерированной хеш-функции gperf для замены нашей старой, но я понятия не имел, безопасна она или нет, и добавит ли это наши эксплуатационные расходы.

Надежность системы и - наше первое рассмотрение.

Есть ли кто-то, кто использовал сгенерированную gperf хеш-функцию в большом проекте?

Безопасно ли использовать его в моем проекте?

Кстати, наш проект - проект C ++, работающий на 64-битной машине Linux.

Заранее спасибо!

Ответы [ 2 ]

4 голосов
/ 26 марта 2011

Никогда не приходилось использовать API сам, но, в этой статье, которая, похоже, относится к концу 90-х годов, они показывают, что GPERF использовался в TAO , отступе GNU и нескольких других приложениях.

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

2 голосов
/ 26 марта 2011

Gperf, как известно, работает очень хорошо. Насколько да, это "безопасно".

Сложность обычно составляет порядка чтения 2 символов, поиска в 2 таблицах и сравнения одной строки. Надежность 100%. Если что-то пошло не так, вы получите сообщение об ошибке, иначе оно будет работать.

Стоимость обслуживания находится между «низким» и «несуществующим», вам нужно выяснить, как записать входной файл один раз , затем запустить его через gperf один раз , и скомпилируйте это. Это простой C-код, который может делать каждый 10-20-летний компилятор. Вызывайте функцию поиска всякий раз, когда вы хотите найти значение, это все, что нужно сделать.

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

...