Caching 程序是否预先计算/缓存哈希键以提高性能

Caching 程序是否预先计算/缓存哈希键以提高性能,caching,hash,Caching,Hash,虽然散列已经非常快了(请看),但我想知道程序是否缓存过散列键,这样您就可以直接转到数组索引 var hashKey = hash('foo') hashArray[hashKey] 如果没有,想知道原因。一般来说,如果对象包含一个用于哈希表查找的整数,那么在对象中存储该整数的预计算哈希所带来的额外成本往往会超过在需要时简单计算它的成本。对于仅用于保存整数的对象,通常不值得预先计算散列 另一方面,如果通用对象可用于保存整数或可能需要在哈希表中查找的其他内容,则存储所述对象的哈希可能是有益的。如果

虽然散列已经非常快了(请看),但我想知道程序是否缓存过散列键,这样您就可以直接转到数组索引

var hashKey = hash('foo')
hashArray[hashKey]

如果没有,想知道原因。

一般来说,如果对象包含一个用于哈希表查找的整数,那么在对象中存储该整数的预计算哈希所带来的额外成本往往会超过在需要时简单计算它的成本。对于仅用于保存整数的对象,通常不值得预先计算散列

另一方面,如果通用对象可用于保存整数或可能需要在哈希表中查找的其他内容,则存储所述对象的哈希可能是有益的。如果泛型对象用于保存哈希值计算成本较低的对象,则存储哈希值的成本可能会在本质上被浪费,但如果该对象可能用于存储整数或非常长的字符串,则存储哈希值的好处可能会超过成本