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


来看日志:
 

04-05 03:38:54.224: E/start(9713): ~1333597134230 04-05 03:38:55.024: D/dalvikvm(9713): GC_FOR_MALLOC freed 2463 objects / 413552 bytes in 107ms 04-05 03:38:55.774: D/dalvikvm(9713): GC_FOR_MALLOC freed 1698 objects / 566968 bytes in 89ms 04-05 03:38:56.724: D/dalvikvm(9713): GC_FOR_MALLOC freed 1678 objects / 507304 bytes in 48ms 04-05 03:38:58.254: D/dalvikvm(9713): GC_FOR_MALLOC freed 1600 objects / 529256 bytes in 45ms 04-05 03:39:00.273: D/dalvikvm(9713): GC_FOR_MALLOC freed 1623 objects / 505208 bytes in 44ms 04-05 03:39:01.264: D/dalvikvm(9713): GC_FOR_MALLOC freed 1600 objects / 529216 bytes in 46ms 04-05 03:39:01.554: D/dalvikvm(9713): GC_FOR_MALLOC freed 1623 objects / 505152 bytes in 47ms 04-05 03:39:01.874: D/dalvikvm(9713): GC_FOR_MALLOC freed 1600 objects / 529216 bytes in 45ms 04-05 03:39:02.094: E/endTime(9713): ~1333597142101 04-05 03:39:02.094: E/time---->(9713): 7871 04-05 03:39:02.094: E/average(9713): 157 

日志的最后一条显示:平均提交耗时约为157毫秒,当然这里每次提交3条记录,那么每次commit大概耗时52毫秒

2.采用先提交,最后一次性commit方法
 

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.putInt("first"+i, 1);                     manager.putInt("second"+i, 2);                     manager.putInt("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);             }         }); 

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

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