我正在考虑在Go中实现一个内存缓存守护程序。它具有潜在的严重内存利用(例如,1TB)。将其分成单独的堆是不好的选择,我想要全部在一个内存空间中。是否有人有使用Go处理如此巨大的内存大小的经验?GC是否能够正常执行?
我也尝试过类似的事情,但是只有一个名为binary tree treap的项目给了我很好的缓存数据性能:https://github.com/stathat/treap。在一台内存为8GB的Ubuntu 12.0.4 LTS机器上,treap支持了超过100万个节点,并且加载和搜索数据速度非常快。 我测试了其他一些项目,包括LMDB,但不支持许多内存节点,kv,go-cache和goleveldb,但没有一个比treap从内存恢复数据更快。