在浏览器客户端数据初始化数据优化时过程中,由于多次看到使用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); } 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