iosprotobuf编译
发布时间: 2024-12-03 07:17:20
Ⅰ iOS进阶——微信开源存储框架MMKV(一)
MMKV是微信开源的数据持久化框架,现在已经支持Android/iOS/PC 平台。该框架是基于mmap映射内存的key—value组件,使用protobuf实现数据的序列化和反序列化,性能高,稳定性强。微信在2015就在微信应用上使用了该框架。实验证明MMKV是数据持久化的首选。
ProtoBuf是由google公司用于数据交换的序列结构化数据格式,具有跨平台、跨语言、可扩展特性,类型于常用的XML及JSON,但具有更小的传输体积、更高的编码、解码能力,特别适合于数据存储、网络数据传输等对存储体积、实时性要求高的领域。
优点:空间效率搞,时间效率要高,对于数据大小敏感,传输效率高的。
缺点:消息结构可读性不高,目前使用不广泛。
MMKV维护了一个<String,AnyObject>的dic,在写入数据时,会在dit和mmap映射区写入相同的数据,最后由内核同步到文件。因为dic和文件数据同步,所以读取时直接去dit中的值。MMKV数据持久化的步骤:mmap 内存映射 -> 写数据 -> 读数据 -> crc校验 -> aes加密。
在MMKV的源码中,是怎么样内存映射的呢?
热点内容