任何好的开源软件都有两面:一个是给新手提供的demo,另一个是自己内部支持的其他高级的接口。
例如leveldb如果只是初级用户只需要知道他提供给我们的存储接口。
当我们用这个工具去存储千万级配置时,只能去研究具体的原理,并调整各个参数。
Arena是leveldb的内存申请类。
当内存超过了最大的1000w时,直接换了一个新的表,arena通过将内存分块,一次性申请批量内存。当需要添加数据的时候再向arena申请数据。
所以他不需要free,等arena对象释放时统一释放。
skiplist 的特点是只允许有一个写者,可以有多个读者,每有一个读者,就会对变量进行Ref引用,避免数据被删除。
根据数据结构的特点,选择合适的STL,因为新加入的数据都是直接插入到最后,可以考虑使用vector插入?
阅读(1528) | 评论(1) | 转发(0) |