https://github.com/maypok86/otter
推荐一下最近新出的缓存库 Otter ,代码上采用无锁结构提高并发能力,缓存策略上则采用 S3-FIFO ,根据 benchmark 来看命中率相当不错。虽然我不是作者但是因为在 Theine 下有大量讨论我就一直关注着
相关讨论: https://github.com/Yiling-J/theine-go/issues/29
Hacker news: https://news.ycombinator.com/item?id=38745070
最近一直忙着 Dart/Flutter 开发 app 所以 Go 用的少了,等以后有空而且 Otter 用户足够多后,我也许会参考一下把 Theine 也改成无锁结构
1
NoOneNoBody 2023-12-25 17:31:54 +08:00
Otter 是个开源浏览器的名字,好多年了,你是否考虑一下改名,只是建议,Otter 浏览器跟我没任何关系
https://www.otter-browser.org/ |
2
matrix1010 OP @NoOneNoBody 我也不是作者
|
3
Nazz 2023-12-25 17:48:15 +08:00
otter 最近又优化了吧, 看 benchmark 混合读写速度非常惊人, 我把最小堆去掉估计也赶不上
goos: linux goarch: amd64 pkg: github.com/lxzan/memorycache/benchmark cpu: 13th Gen Intel(R) Core(TM) i5-1340P BenchmarkMemoryCache_SetAndGet-4 17393630 79.82 ns/op 0 B/op 0 allocs/op BenchmarkOtter_SetAndGet-4 36321264 29.74 ns/op 0 B/op 0 allocs/op BenchmarkRistretto_SetAndGet-4 5968552 179.7 ns/op 32 B/op 1 allocs/op BenchmarkTheine_SetAndGet-4 5518321 237.0 ns/op 0 B/op 0 allocs/op PASS ok github.com/lxzan/memorycache/benchmark 27.342s |
4
matrix1010 OP @Nazz 应该是一直在优化
|
5
infinityv 2023-12-25 19:17:52 +08:00
不懂就问 不知道性能和这个比如何 https://github.com/patrickmn/go-cache 这个看着很久没维护了
|
6
matrix1010 OP @infinityv 全局 rwmutex 估计只会被秒杀
|
7
Nazz 2023-12-25 20:02:33 +08:00
读多写少也是 mutex 更快
|
8
matrix1010 OP @Nazz rwmutex 的 scale 能力一直有问题,比如最近我看到的这个 issue https://github.com/cockroachdb/cockroach/issues/109443
|