【发布时间】:2011-09-02 14:18:34
【问题描述】:
我阅读了关于哈希表的 wiki 页面。 然后我看到了这样的东西:
哈希表可用于实现缓存,辅助数据表用于加速对主要存储在较慢介质中的数据的访问。
我想知道哈希如何加速缓存? 有人能告诉我吗?
【问题讨论】:
我阅读了关于哈希表的 wiki 页面。 然后我看到了这样的东西:
哈希表可用于实现缓存,辅助数据表用于加速对主要存储在较慢介质中的数据的访问。
我想知道哈希如何加速缓存? 有人能告诉我吗?
【问题讨论】:
对缓存的每次访问都需要计算查找键的哈希码,并且缓存的每个添加同样需要知道哈希码。结合这两种操作的智能缓存(“按键查找;如果它不存在,则获取正确的值并缓存它”)可以潜在地避免必须计算两次哈希。
通常哈希计算起来相对便宜 - 而且比访问正在缓存的底层资源便宜得多...而且它不像 所有 缓存中的键必须在每次查找时进行哈希处理。
在某些情况下,哈希本身可以被缓存 - 例如,在 Java 中,String 类会在哈希码首次计算时对其进行缓存。当然,这是否真的有益取决于您的情况。
【讨论】: