2011年10月29日

缓存与平行数组在 hash_strmap 和 gold_hash_map 中的应用

摘要: 2007 年我写过一篇关于平行数组与CPU缓存文章,最近,我在 hash_strmap 和 gold_hash_map 中应用了这种设计思想。hash value cache 对于一些对象,计算它们的 hash value 很昂贵,而对于另外一些对象,计算它们的 hash value 很廉价;所以,我们是否做 hash 缓存对 hash table 性能很重要。更有意思的是,hash 缓存一般只在 hash table 的增长阶段访问(rehash),而在查找阶段,不需要访问 hash 缓存,于是,可以把 hash cache 从数据结构的结点中提取出来,放到一个分离的平行数组中。所谓平行数. 阅读全文

posted @ 2011-10-29 19:51 能发波 阅读(209) 评论(0) 推荐(0)

gold_hash_map vs google sparse map by google's time_hash_map.cc

摘要: 这个列表由我写的一个 perl 程序抓取 time_hash_map 的结果生成。time_hash_map 是 google 自己实现的 hash table 中的一个性能测试程序,我在其中加入了针对 gold_hash_map 的测试,没有其它任何改动。链接中那个性能测试是 gold_hash_map 优化之前的测试结果(已经超越其它 map 了)。operation(byte=4)gold_hash_mapDENSE_HASH_MAPSPARSE_HASH_MAPSTANDARD HASH_MAPSTANDARD MAPtime:fetch_empty54.570865.5234187c 阅读全文

posted @ 2011-10-29 00:51 能发波 阅读(286) 评论(0) 推荐(0)

导航