CodeEggDailyInterview icon indicating copy to clipboard operation
CodeEggDailyInterview copied to clipboard

SharedPreferences 存储比较大或者比较多的键值对会有什么问题吗?为什么?

Open kukyxs opened this issue 5 years ago • 1 comments

kukyxs avatar Dec 18 '19 12:12 kukyxs

SharedPreferences 是一种轻量级的存储方式,之所以轻量级是由其设计所决定的,因为 SharedPreferences 在创建的时候会把整个文件全部加载进内存,所以如果 SharedPreferences 文件比较大就会带来如下一些性能问题:

  • 首次从 SharedPreferences 获取值时可能阻塞主线程从而使 UI 界面卡顿丢帧。

  • 解析 SharedPreferences 时会产生大量的临时对象而导致频繁 GC 使得 UI 界面卡顿丢帧。

  • 被解析的同一个 SharedPreferences 文件的内容会占用大量内存。

kukyxs avatar Dec 19 '19 01:12 kukyxs