android Sharedpreferences源码简述

本文探讨了硬盘上大量XML键值对可能导致的性能问题,以及ContextImpl如何存储SharedPreferences的数据。详细介绍了SharedPreferences的读取机制,指出在完全加载到内存前的阻塞读取和内存中的快速访问。同时,对比了apply和commit的区别,apply的异步更新提高了效率,而commit在多并发提交时可能降低效率。最后,提到了edit()每次都创建新的EditorImpl对象这一事实。

1.储存于硬盘上的xml键值对,数据多了会有性能问题。

2.ContextImpl记录着SharedPreferences的重要数据,文件路径和实
例的键值对。

3.在xml文件全部内加载到内存中之前,读取操作是阻塞的,在xml
件全部内加载到内存中之后,是直接读取内存中的数据。

4.apply因为是异步的没有返回值, commit是同步的有返回值能知道修
改是否提交成功。

5.多并发的提交commit时,需等待正在处理的commit数据更新到磁盘
文件后才会继续往下执行,从而降低效率; 而apply只是原子更新到内
存,后调用apply函数会直接覆盖前面内存数据,从一定程度上提高很
多效率。 3.edit()每次都是创建新的EditorImpl对象

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的沙粒

您的鼓励是我创作最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值