美文网首页
SharedPreferences、MMKV、DataStore

SharedPreferences、MMKV、DataStore

作者: 旺仔_100 | 来源:发表于2022-06-23 10:55 被阅读0次
    一、MMKV的起源:

    微信为了能找到导致崩溃的这些特殊字符,必须要在崩溃之前保存用户发送的文本,找到哪些特殊字符导致崩溃。使用同步保存,写入速度过慢,大量聊天的写入更加会导致卡顿,使用异步的方式,有可能崩溃发生但是数据并没有保存下来。诞生一种方案,是通过内存映射磁盘,就是内存的数据会自动映射到磁盘。它的速度比较快,而且不会因为崩溃导致数据的丢失,这就是MMKV。

    MMKV的优势:

    1.它的同步保存数据速度快。
    2.它支持多进程保存数据。

    劣势:

    1.连续的大量数据保存的时候,mmkv的速度可能会更慢。
    2.mmkv有丢失数据的几率(意外情况不会自动备份)。

    SharedPreferences 劣势:

    1.不支持多进程
    2.卡顿、anr
    3.同步比较耗时
    4.异步无法回调。

    DataStore优势

    1.性能好,读写文件都在后台完成。
    2.容易异步回调,采用协程实现的,容易切换线程。

    劣势:

    1.不支持多进程

    总结:
    • 如果你有多进程支持的需求,MMKV是唯一的选择。
    • 如果你有高频写入的需求,优先考虑MMKV,但是它有很小的概率丢失数据,是否采取备份方案。
    • 如果没有多进程和高频写入的需求,DateStore作为最完美的方案,优先被考虑。
    • MMKV在写大字符串的时候和初次加载文件的时候,是可能卡顿的,只要文件大到卡顿条件,每次都会卡顿。这个在SharedPreferences 中也是有的。
    • 如果没有使用kotlin和协程是没有办法使用DateStore的。

    相关文章

      网友评论

          本文标题:SharedPreferences、MMKV、DataStore

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