V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
matrix1010
V2EX  ›  Go 编程语言

Otter, 兼具高性能与高命中率的内存缓存

  •  
  •   matrix1010 ·
    Yiling-J · 2023-12-25 17:23:40 +08:00 · 1839 次点击
    这是一个创建于 368 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 也改成无锁结构

    8 条回复    2023-12-25 20:18:31 +08:00
    NoOneNoBody
        1
    NoOneNoBody  
       2023-12-25 17:31:54 +08:00
    Otter 是个开源浏览器的名字,好多年了,你是否考虑一下改名,只是建议,Otter 浏览器跟我没任何关系
    https://www.otter-browser.org/
    matrix1010
        2
    matrix1010  
    OP
       2023-12-25 17:37:42 +08:00 via iPhone
    @NoOneNoBody 我也不是作者
    Nazz
        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
    matrix1010
        4
    matrix1010  
    OP
       2023-12-25 17:50:13 +08:00 via iPhone
    @Nazz 应该是一直在优化
    infinityv
        5
    infinityv  
       2023-12-25 19:17:52 +08:00
    不懂就问 不知道性能和这个比如何 https://github.com/patrickmn/go-cache 这个看着很久没维护了
    matrix1010
        6
    matrix1010  
    OP
       2023-12-25 19:27:56 +08:00 via iPhone
    @infinityv 全局 rwmutex 估计只会被秒杀
    Nazz
        7
    Nazz  
       2023-12-25 20:02:33 +08:00
    读多写少也是 mutex 更快
    matrix1010
        8
    matrix1010  
    OP
       2023-12-25 20:18:31 +08:00 via iPhone   ❤️ 1
    @Nazz rwmutex 的 scale 能力一直有问题,比如最近我看到的这个 issue https://github.com/cockroachdb/cockroach/issues/109443
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2967 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:11 · PVG 19:11 · LAX 03:11 · JFK 06:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.