javascript string字符串优化问题_Javascript教程-查字典教程网
javascript string字符串优化问题
javascript string字符串优化问题
发布时间:2016-12-30 来源:查字典编辑
摘要:复制代码代码如下:testfunctionwinProps(){varmessage=[];varstr;vardata=newDate()...

复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>test</title>

<script type="text/javascript">

function winProps(){

var message = [];

var str;

var data = new Date();

var mils1 = data.getTime();

//array数组

for(var i = 0; i<500000;i++)

message.push("This window is ");

message.join(" ");

data = new Date();

var mils2 = data.getTime();

arrayMils = mils2 - mils1;

//字符串直接连接

for(var i = 0; i<500000;i++)

str+="This window is ";

data = new Date();

var mils3 = data.getTime();

stringMils=mils3-mils2;

//显示内容,不重要

var mes = [];

mes.push("时间1:");

mes.push(mils1);

mes.push("n时间2");

mes.push(mils2);

mes.push("n时间3");

mes.push(mils3);

mes.push("narray所用时间");

mes.push(arrayMils>=0?arrayMils:arrayMils+1000);

mes.push("nstr连接所用时间");

mes.push(stringMils>=0?stringMils:stringMils+1000);

alert(mes.join(" "));

}

</script>

</head>

<body>

<input type="button" value="点我"/>

</body>

结果不像一般的说法,用array会快。在ie9,8。ff,google,搜狗等ie核心的浏览器下测试了一下,确实在数量级100000以上的测试中array方法比用“+”的方法会慢。

1000000次的结果

ie第一次(大概,ie复制不了,图就不截了)

复制代码 代码如下:

array所用时间 890

str连接所用时间 450

ie可能是内存没有回收第二次点会弹出警告,并且时间用到1400和1200,点多几次后,+=的连接方式耗时回到400,难倒是array对象没有回收?打开任务管理器,再刷新一次ie浏览器,内存降了100多m,应该研究一下ie的javascript内存回收机制。

ff

复制代码 代码如下:

时间1: 1312102053720

时间2 1312102053842

时间3 1312102053882

array所用时间 122

str连接所用时间 40

google(也复制不了数据)

array所用时间 200

str连接所用时间 100

opera

时间1: 1312102258270

时间2 1312102258460

时间3 1312102258592

array所用时间 190

str连接所用时间 132

顺便说一下,在数据到5000000后ff抛出了个异常,应该是内存溢出了。。。(ps,不是很懂)

错误: uncaught exception: 8.375396749959738e-274

在ie下测试果断警告,再后来out of memory。

当然怎么大的数据连接,在现在的网页是不可能出现,数据处理应该是在后台做的。老师的主机不敢装这么多浏览器

其实是array的jion,太消耗时间。没有加入这一句之后opera,google就显示出array的优势:

opera结果:

复制代码 代码如下:

时间1: 1312101715553

时间2 1312101715622

时间3 1312101715749

array所用时间 69

str连接所用时间 127

[code]

ie结果

array所用时间700

str连接所用时间500

ff

[code]

时间1: 1312101925895

时间2 1312101925945

时间3 1312101925979

array所用时间 50

str连接所用时间 34

google

array所用时间17

str连接所用时间100

去查查jion的机制再写吧。

ps:浏览器版本

google12.0.742.122

ff5.0.1

opera11.50

ie8.0.6001.18702

pss:ie处理速度不给力

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类