gitalk
gitalk copied to clipboard
一个线程安全的泛型支持map库
一个线程安全的泛型支持map库
orcaman/concurrent-map是一个非常高效的线程安全的map库,正如它的文档中所说的那样,标准库sync.Map更适合append-only的场景,或者说少写大量的读的场景,如果针对多读多写的场景,concurrent-map可能会更有优势。它是通过分片的方式,将锁的粒度减少,从而提高性能。
https://colobu.com/2022/09/04/a-thread-safe-and-generic-supported-map/
cornelk/hashmap
alphadose/haxmap
puzpuzpuz/xsync
个人觉得都是些值得关注的 map 实现.
泛型化key计算hash,先转成interface{},可以拿到那块内存区的地址和长度。直接暴力当成字符串计算。 https://github.com/antlabs/gstl/blob/master/cmap/cmap.go#L57 在我的玩具数据结构库是这么玩的。 这样大多数类型不需要定制hash函数,比较省力。