SharedPreferences、MMKV、DataStore对比

一、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对比)