关于Android中SharedPreferences提交数据效率的调研

在浏览器客户端数据初始化数据优化时过程中,由于多次看到使用SharedPreferences保存数据。于是查了下客户端的SharedPreferencesManager的源码,发现我们提交数据时的代码形式如下:

public void putFloat(String key, float value)     {         editor.putFloat(key, value);         editor.commit();     } 

即我们每次都使用事务提交数据,这样操作对客户端来说是很安全的,能确保每次数据能够及时写入,但是,由此也带来了一个小问题,那就是commit操作本身耗时时间时比较长的,多次commit必然会带来时间和性能上的比较大的开销。客户端做了一个Demo来调研该设想,代码如下:

1.每次使用commit提交数据,循环50次,每次提交3条数据
 

button.setOnClickListener(new OnClickListener() {                         @Override             public void onClick(View v) {                 SharedPreferenceManager manager = SharedPreferenceManager.getInstance();                 Long startTime = Calendar.getInstance().getTimeInMillis();                 Log.e("start","~"+startTime );                 for(int i=0;i<50;i++){                     manager.putIntCom("first"+i, 1);                     manager.putIntCom("second"+i, 2);                     manager.putIntCom("third"+i, 3);                 } //                manager.commit();                 Long endTime = Calendar.getInstance().getTimeInMillis();                 Log.e("endTime","~"+endTime );                 Log.e("time---->"""+(endTime-startTime));                 Log.e("average"""+(endTime-startTime)/50);             }         }); 

manager.putIntCom的方法如下:

public void putIntCom(String key, int value){         editor.putInt(key, value);         editor.commit();     } 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://127.0.0.1/wyysds.html