Manager.putInt()方法形如:
public void putInt(String key, int value) { editor.putInt(key, value); }
日志如下:
04-05 03:36:46.214: E/start(9167): ~1333597006214 04-05 03:36:46.244: E/endTime(9167): ~1333597006253 04-05 03:36:46.244: E/time---->(9167): 39 04-05 03:36:46.254: E/average(9167): 0
这里显示的数据很让人吃惊!
我们来查下Sharedpreferences的实现方式
private static final class SharedPreferencesImpl implements SharedPreferences
在实现putXxx时使用其内部的Map缓存,将数据保存在Map中,当commit时,遍历Map,将数据通过其监听器Listeners提示更新数据文件。
listener.onSharedPreferenceChanged(SharedPreferencesImpl.this, key);
默认情况下,我们没有重写onSharedPreferenceChanged方法,这里就交由Android本身去实现了。但是可以确定的是commit方法涉及到同步,遍历等操作,本身是比较耗时的。
所以减少commit操作本身就是一件可以优化的事情。
结论:
Commit操作本身比较耗时,在保证数据安全的情况下,在数据实时性要求不高的地方,可以尽量累计更改,一次提交,以提高效率。
更多Android相关信息见Android 专题页面 ?tid=11
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://127.0.0.1/wyysds.html