Go 每日一庫之比標準庫更快 hash 算法 xxhash

今天給大家推薦一個 xxhash 庫,該庫是 go 語言實現的 xxHash 算法,比標準庫性能更高,最終生成一個 64 位的整型 hash 值。項目地址:https://github.com/cespare/xxhash  Star:1.5k Used By:52.7k 根據使用量看起來是不是很流行。同時該包也是 xxHash 收錄的實現。

什麼是 xxHash

xxHash 是一種速度極快的非加密哈希算法,在 RAM 速度限制下工作。它有四種類型(XXH32、XXH64、XXH3_64bits 和 XXH3_128bits)。最新的變體 XXH3 全面提高了性能,尤其是在小數據方面。

誰在用 xxHash

從官方 https://xxhash.com/ 上可以看到,很多著名的大型軟件都在使用 xxHash 算法,包括大家熟知的 MySQL、Linux。如下:

cespare/xxhash 包的使用

該包提供的 API 非常簡單,如下:

func Sum64([]byte) uint64
func Sum64String(s string) uint64
type Digest struct{ ... }
    func New() *Digest

使用示例:

package main

import (
 "fmt"
 "github.com/cespare/xxhash/v2"
)

func main() {
 h := xxhash.Sum64([]byte("Hello"))
 fmt.Println(h) //輸出753694413698530628

 has := xxhash.New()
 has.WriteString("Hello")
 h4 := has.Sum64()
 fmt.Println(h4) //輸出753694413698530628
}

以上就是今天給大家推薦的開源包。如果你有使用過優秀的開源包,歡迎留言推薦。


本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/QEBdspMhEBcCwgHouS9cKQ