Indexing D中的SHA1索引哈希表

Indexing D中的SHA1索引哈希表,indexing,hashtable,d,sha1,Indexing,Hashtable,D,Sha1,我正在使用一个由SHA1摘要(ubyte[20])索引的D内置哈希表来关联文件系统搜索引擎中的信息 是否有任何数据结构更适合这种情况(在D中),因为这样一个键的所有优良特性:均匀、分布、随机、大小固定,或者D的内置哈希表的行为是否会自动发现它可以(例如)选择第一个n(1-8)SHA1摘要的字节数作为bucket索引?我认为标准映射中使用的哈希函数非常简单(成本方面),除非您运行的代码主要是查找,否则它不会有多大区别。请记住,完整密钥将被读取以进行最终比较,因此它将以任何方式加载到缓存中 OTOH

我正在使用一个由SHA1摘要(
ubyte[20]
)索引的D内置哈希表来关联文件系统搜索引擎中的信息


是否有任何数据结构更适合这种情况(在D中),因为这样一个键的所有优良特性:均匀、分布、随机、大小固定,或者D的内置哈希表的行为是否会自动发现它可以(例如)选择第一个n(1-8)SHA1摘要的字节数作为bucket索引?

我认为标准映射中使用的哈希函数非常简单(成本方面),除非您运行的代码主要是查找,否则它不会有多大区别。请记住,完整密钥将被读取以进行最终比较,因此它将以任何方式加载到缓存中


OTOH我认为有一种
opHash
方法可以重载

您考虑的方法是
size\t toHash()@trusted nothrow所以我想我只是返回了前4(32位)或8(64位)字节,这取决于当时的体系结构。@Nordlöw,我建议反对这个想法…:)
toHash()
用于其他内容。根据定义,它应该是
hash\u t
而不是
size\u t
对吗?似乎文档中都使用了
opHash
toHash
。@DejanLekic,为什么这是个坏主意?