MMKV

作者: 愤怒的八哥 | 来源:发表于2019-02-11 13:34 被阅读2次

MMKV 源起

在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的 crash,参考文章,文章里面设计的技术方案是在关键代码前后进行计数器的加减,通过检查计数器的异常,来发现引起闪退的异常文字。

MMKV 原理

内存准备
通过 mmap 内存映射文件,提供一段可供随时写入的内存块,App 只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash 导致数据丢失。
数据组织
数据序列化方面我们选用 protobuf 协议,pb 在性能和空间占用上都有不错的表现。
写入优化
考虑到主要使用场景是频繁地进行写入更新,我们需要有增量更新的能力。我们考虑将增量 kv 对象序列化后,append 到内存末尾。
空间增长
使用 append 实现增量更新带来了一个新的问题,就是不断 append 的话,文件大小会增长得不可控。我们需要在性能和空间上做个折中。

相关文章

  • MMKV 高性能的数据存取框架解读

    MMKV 目标 了解MMKV MMKV的基本应用 MMKV的原理概念 多进程设计思想 性能对比 源码解读 简介 M...

  • MMKV介绍与使用-用来替代android SharePrefe

    最近微信开源了MMKV项目如下https://github.com/Tencent/MMKV MMKV是基于mma...

  • 源码浅析 - MMKV iOS 1.0 (deprecated)

    本篇内容已过期 请移步:MMKV 1.1.1 MMKV(官方介绍) MMKV 是基于 mmap 内存映射的 key...

  • 轻量级数据存储 -- MMKV

    一、使用 MMKV使用 二、原理 MMKV原理 三、封装 四、迁移

  • MMKV——2.原理

    1.MMKV——1.使用2.MMKV——2.原理 1. mmap高性能存取的基石 MMKV通过mmap 内存映射文...

  • MMKV——1.使用

    1.MMKV——1.使用2.MMKV——2.原理 前言 MMKV是有腾讯开发的高性能key-value组件,可以完...

  • MMKV 源码详解

    MMKV 简介 MMKV——基于 mmap 的高性能通用 key-value 组件[https://github....

  • MMKV

  • MMKV

    原理 https://github.com/Tencent/MMKV/wiki/design 内存 mmap 数据...

  • MMKV

    MMKV 源起 在微信客户端的日常运营中,时不时就会爆发特殊文字引起系统的 crash,参考文章,文章里面设计的技...

网友评论

    本文标题:MMKV

    本文链接:https://www.haomeiwen.com/subject/tjfqeqtx.html