我现在正在考虑使用 gperf 生成的哈希函数来替换旧的哈希函数,但我不知道它是否安全,并且会增加我们的维护成本。
可靠性和系统复杂性是我们的首要考虑因素。
是否有人在大项目中使用过gperf生成的哈希函数?
在我的项目中使用它是否安全?
BTW,我们的项目是一个C ++项目,在64位Linux机器上运行。提前致谢!
答案 0 :(得分:4)
我自己从不使用API,但是, 在this的写作中,似乎是从90年代后期开始,他们表明GPERF已用于TAO,gnu缩进以及其他一些应用程序。
已经出现了一段时间,很可能会被淘汰出局。 Here's一个有趣的开发人员写作。
答案 1 :(得分:2)
复杂性通常是读取2个字符,执行2个表查找和一个字符串比较的顺序。可靠性是100%。如果出现问题,您会收到错误消息,否则会出现错误消息。
维护成本介于“低”和“不存在”之间,您需要弄清楚如何编写输入文件一次,然后通过gperf 运行 ,并编译它。这是每个10到20年历史的编译器可以理解的简单C代码。无论何时想要查找值,都要调用查找函数,这就是所有要做的事情。
如果你改变它,你需要再次通过gperf运行输入文件,显然......否则就是这样。如果您的密钥列表没有变化,您再也不需要做任何事情了。我在几个项目中使用了gperf,完全满意。