国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

javascript string字符串優化問題

2019-11-20 23:44:39
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

<!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="點我" onclick="winProps();"/>
</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處理速度不給力
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 四子王旗| 奉节县| 略阳县| 得荣县| 吉木萨尔县| 商南县| 涿鹿县| 普兰县| 郴州市| 桂平市| 航空| 从江县| 五常市| 新源县| 句容市| 内乡县| 西峡县| 呼图壁县| 芮城县| 定西市| 山西省| 白银市| 易门县| 义乌市| 定兴县| 定陶县| 子洲县| 丰台区| 滨海县| 阳朔县| 贡嘎县| 阿巴嘎旗| 乌拉特后旗| 宜宾县| 安远县| 博客| SHOW| 南投县| 壶关县| 石台县| 诸城市|