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的源碼中,是怎麼樣內存映射的呢?
熱點內容