小科普:Hashtable 的加载因子确定元素与Hashtable 可拥有的元素数的最大比率。加载因子越小,平均查找速度越快,但消耗的内存也增加。默认的加载因子 0.72通常提供速度和大小之间的最佳平衡。当创建 Hashtable 时,也可以指定其他加载因子。 元素总量/ Hashtable 可拥有的元素数=加载因子
reg用来剔除一些被混入的无用的字节的行。
fbUniq 用来应对大文本的去重, 经过测试,当文本文件比较大时(几百w行,几千w行),速度上比使用awk ‘!a[$0]++’快1倍,内存占用上节约一倍。目前固定了hashtable的大小为33554432(1<<25),当处理的数据远远大于33554432的时候,建议增大hashtable的尺寸,可以防止hash碰撞导致使用List之后,遍历List增加的性能开销,单相应的内存使用就会上升,目前默认的大小速度和内存上平衡还可以。
Happy Hacking, 代码
评论
我怎么看着fbUniq的时间复杂度是O(n)呀?