MMKV相关

MMKV的核心原理是将文件MMAP到内存中,将新的key/value直接append到内存中,如果达到边界了,就重整以腾出空间,如果空间还是不够的话,就直接double内存块。MMKV只会选用最新写入的key/value作为有效值。
优点:读写效率高,因为是直接写内存,不需要进行文件读写。文件读写是由操作系统自行实现的,不会出现内容丢失。支持多进程锁。
缺点:初始化的时候会直接申请一块内存,如果用的key/value不多,就会浪费一大块内存。

  1. MMKV如何支持多进程?

    1. 去中心化架构:将文件内容通过MMAP映射到每个访问进程的内存块中。
    2. 通过对写指针的更新和定位,实现内容的状态同步。
    3. 通过优化和升级文件锁,给内容加上进程锁,保证内容的读写同步。
  2. MMKV的数据序列化使用的是Protocol协议,将key/value序列化成buffer(内存块)存储到内存中。

参考资料:
https://github.com/Tencent/MMKV/wiki/design
https://github.com/Tencent/MMKV/wiki/android_ipc
https://juejin.cn/post/6844903914119102472

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容