编程民工
编程民工
  • 发布:2015-03-17 13:06
  • 更新:2015-09-21 00:13
  • 阅读:2651

plus.storage速度过慢问题

分类:HTML5+

测试环境:Android 4.4 intelHAM 模拟器,chrome 40 inspect console运行
//=========================================
var datalen=500;
var times=150;
测试结果:
plus -set:29133
plus -get:31522
plus -clear:31535
local-set:260
local-get:555
local-clear:562
//=========================================
var datalen=150;
var times=450;
测试结果:
plus -set:68859
plus -get:75286
plus -clear:75298
local-set:469
local-get:774
local-clear:787
//=========================================
var datalen=50;
var times=1350;
测试结果:
plus -set:191658
plus -get:206620
plus -clear:206650
local-set:2946
local-get:3112
local-clear:3126
//=========================================
测试代码:
var a=[];
var datalen=150;
var times=450;
for(var i=0;i<datalen;i++){
a[i]={id:1234567+i,dt:new Date(Date.now()),value:i+5.5i};
}
var s=JSON.stringify(a);

plus.storage.clear();
localStorage.clear();
var t1=Date.now();
for(var i=0;i<times;i++)
{
plus.storage.setItem(i+'',s);
}
console.log("plus -set:"+(Date.now()-t1));
for(var i=0;i<times;i++)
{
var temp=plus.storage.getItem(i+'');
}
console.log("plus -get:"+(Date.now()-t1));
plus.storage.clear();
console.log("plus -clear:"+(Date.now()-t1));

var t2=Date.now();
for(var i=0;i<times;i++)
{
localStorage.setItem(i+'',s);
}
console.log("local-set:"+(Date.now()-t2));
for(var i=0;i<times;i++)
{
var temp=localStorage.getItem(i+'');
}
console.log("local-get:"+(Date.now()-t2));
localStorage.clear();
console.log("local-clear:"+(Date.now()-t2));

2015-03-17 13:06 负责人:无 分享
已邀请:
好冷

好冷 - 诚接外包,QQ:23380891

官网居然连个实例都没有么?

DCloud_App_Array

DCloud_App_Array

plus.storage.*接口速度确实不够高,不推荐使用此API来频繁操作数据,可选方案:

  1. 将多个数据保存到一个key中,如转换成json字符串,读取后再转换回来;
  2. 如果是需要大量的数据操作,如频繁插入、删除、搜索等,则推荐使用WebSQL或indexDB。
  • 编程民工 (作者)

    从上面的测试来看,第一个测试中,数据长度大概是8.9k,存取用时200ms左右。如果是异步的,那么感觉影响不是很大,如果是同步的,那就会感觉到延迟。

    2015-03-20 15:57

  • 编程民工 (作者)

    回复 编程民工:我感觉这个速度应该能凑合用,但是相比localStorage差距实在太大。

    2015-03-20 15:57

该问题目前已经被锁定, 无法添加新回复