【xxhash】建立超高速在本地保存網站的cuckooget【cuckoohash table】
大家好,我是無能。
因為沒有我想要的那種、具備在本地建立網站鏡像功能的工具,所以我自己做了。
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並將其整合進來。
由於布穀鳥雜湊表需要兩種,所以使用xxh32和xxhash64來生成。
此外,Iigau君提醒了我,我之前將表格大小的上限固定了,所以現在改為使用_resize來調整表格大小。
獨特的權重設定
透過-w --weight選項,依序寫入URL中包含的字串,可以改變保存目標URL的優先度。
例如,這樣就可以在不依賴層級指定的情況下,靈活地進行設定。
最快?
我不想寫太多,因為可能會受到批評,但預設連線數是50。
但說實話,即使不到50個也很快。
為什麼速度很重要呢?因為我曾經保存過5ch的UNIX板在2022年或2023年前後的內容。大約有30GB。
那時,腳本的氾濫讓我震驚,歷史性的討論串和貼文不斷地被沖入舊日誌中。
因此,對我來說,速度是不得不重視的。
剩下的...
我想實現的是,能夠建立快取檔案,以便在中止後可以繼續處理,這是我曾經嘗試但失敗的,還有LRU快取的實作吧...
由於失敗了很多次,我希望能設法將其整合進去。
那麼,下次再見了。
然後...我太累了,看著電腦就睡著了...