1.储存于硬盘上的xml键值对,数据多了会有性能问题。
2.ContextImpl记录着SharedPreferences的重要数据,文件路径和实
例的键值对。
3.在xml文件全部内加载到内存中之前,读取操作是阻塞的,在xml文
件全部内加载到内存中之后,是直接读取内存中的数据。
4.apply因为是异步的没有返回值, commit是同步的有返回值能知道修
改是否提交成功。
5.多并发的提交commit时,需等待正在处理的commit数据更新到磁盘
文件后才会继续往下执行,从而降低效率; 而apply只是原子更新到内
存,后调用apply函数会直接覆盖前面内存数据,从一定程度上提高很
多效率。 3.edit()每次都是创建新的EditorImpl对象




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

598

被折叠的 条评论
为什么被折叠?



