【xxhash】创建超高速本地网站保存工具cuckooget【布谷鸟哈希表】

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

大家好,我是无能。
因为没有我想要的、具备在本地创建网站镜像功能的工具,所以我自己做了一个。
httpithub.cturackooget

介绍

本站的镜像功能深受HTTrack作者xavier roche的影响。
[xavier roche’s homework](httplog.httrack.c
我在阅读他的博客时看到了以下文章。
[Coucal, Cuckoo-hashing-based hashtable with stash area C library](httplog.httrack.c/uc
关于布谷鸟哈希表,在大家都很喜欢的熊木先生的幻灯片“你不知道的哈希表世界”中,有通俗易懂的解释。

我想到了。就是在发生冲突时,“像布谷鸟的习性一样踢出其他元素”的部分。我认为在存在大量列表且可能发生重复的情况下,可以利用这一特性。
ahewfewjjwefawefj

哈希计算

由于不需要安全性,我找到了最近的xxhash并将其集成。
布谷鸟哈希表需要两种哈希函数,因此我使用xxh32xxhash64来生成。
另外,Iigau君提醒了我,我之前将表大小的上限固定了,所以现在我通过_resize来调整表的大小。

独一无二的权重设置

通过在-w --weight选项中按顺序指定URL中包含的字符串,可以改变保存目标URL的优先级。
例如,这样就可以灵活设置,而不依赖于层级指定。

最快?

我不想写太多,以免招致批评,但默认连接数是50
但说实话,即使不到50也很快。
为什么速度很重要呢?我曾经保存了5ch的UNIX版块2022年或2023年前后的内容,大约30GB。
那时,脚本泛滥,历史性的帖子和评论不断被冲入旧日志,这让我感到震惊。
因此,对我来说,速度是不得不重视的。

剩下的……

我想实现创建缓存文件并在中断后能够继续处理的功能,以及LRU缓存的实现……
我失败了很多次,所以希望能设法将其集成进去。
那么,下次再见。

然后……我太累了,看着电脑就睡着了……