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

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

Прежде всего мы обращаем внимание на надежность и сложность системы.

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

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

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

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


person iCoder    schedule 25.03.2011    source источник


Ответы (2)


Мне никогда не приходилось использовать API, но в this напишите - вверх, который, кажется, относится к концу 90-х годов, они показывают, что GPERF использовался в TAO, gnu indent и несколько других приложений.

Он был выпущен какое-то время и, вероятно, будет хорошо вытряхнут. Вот интересная статья о работах разработчиков.

person Paul Rubel    schedule 25.03.2011

gperf, как известно, работает очень хорошо. В той мере, в какой это «безопасно».

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

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

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

person Damon    schedule 25.03.2011