| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1335 人关注过本帖
标题:针对字符串连接方式,做的测试
只看楼主 加入收藏
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
结帖率:98.25%
收藏
 问题点数:0 回复次数:14 
针对字符串连接方式,做的测试
针对于帖子 https://bbs.bccn.net/thread-327578-1-1.html 中33层hugeannex说的,我写了一个测试脚本,代码文件如下:
index.rar (2.26 KB)

我做了测试,在IE7/8/9中的确对“+”这样的方式做了优化,甚至很多其他的浏览器(如火狐等)也对“+”有优化,但是和push的方式和用数组角标的方式相比,两者的差距并不明显,并且IE7对“+”优化很有限,其差距也是相当大。至于IE6就更不用说了,运行10W次的时候已经慢到让人无法忍受了,100W次的时候更是崩掉了。
所以得到结论,由于需要兼容IE6浏览器,所以使用push的方式不但没有过时,反而“+”的方式是不好的。
在10000次循环内,所有浏览器的性能几乎相当,没有太大差异。所以在小量使用的时候,任何方式都没有好坏之分。
搜索更多相关主题的帖子: 字符 
2010-12-09 20:40
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
再怎么优化还是 + 啊,

我就是真命天子,顺我者生,逆我者死!
2010-12-09 20:42
foktime
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:奥斯维辛
等 级:贵宾
威 望:35
帖 子:795
专家分:2742
注 册:2009-9-4
收藏
得分:0 
比我之前做的测试更详细
高版本的ie +有所优化,不过还是v4的方式最快
FF Opera  Safari chrome +最快

不错的东东  感谢测试代码的提供
2010-12-10 08:51
qingshuiliu
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:17
帖 子:323
专家分:1538
注 册:2009-12-28
收藏
得分:0 
学习之中
2010-12-10 09:10
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
以下是引用foktime在2010-12-10 08:51:32的发言:

比我之前做的测试更详细
高版本的ie +有所优化,不过还是v4的方式最快
FF Opera  Safari chrome +最快
从这个方面能看出一个现象,传说中Opera是最快的浏览器,它也确实在5百万次循环“+”的时候表现神速,我这里仅用了123毫秒,但是我测试了一下IE9,更神速,用了94毫秒
注:做测试用的是win7下的两款浏览器

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-12-11 09:13
hugeannex
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:483
专家分:911
注 册:2005-3-20
收藏
得分:0 
以下是引用BlueGuy在2010-12-9 20:42:37的发言:

再怎么优化还是 + 啊,

   楼主是个有心和执著的人,很不错。
  
   可这位仁兄的话太差了,你看过java或C#的StringBuilder()吗?它和它们本身的+号是同一“档次”的吗?
 按它们的原理,javascript也可以做到类似的,只是javascript不用StringBuilder()做为对象名,用“+”又怎么啦?(看上去丑点?)
还有,脚本自身受限的原因,运行起来肯定没有java和C#快的啦。

    纷纷绕绕,千百年以后,一切又重头。

世事如潮我如水,只叹江湖几人回。
2010-12-11 13:26
hugeannex
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:483
专家分:911
注 册:2005-3-20
收藏
得分:0 
还有,各人的要求不同,楼主是死活抱着IE6了,而我是用IE6的就让他慢去。
所以,我向未来看齐,楼主向过去看齐。。。无话可说了

世事如潮我如水,只叹江湖几人回。
2010-12-11 13:29
hugeannex
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:483
专家分:911
注 册:2005-3-20
收藏
得分:0 
吃完饭收拾完毕,看了下LZ的js代码,这测试程序写得不怎么合理,都"挤"在一起计算时间了....
若是v1由于v2的加入"计算"而“卡”了一下,v3加入的时候v1、v2。。。,v4。。。。

世事如潮我如水,只叹江湖几人回。
2010-12-11 20:47
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
以下是引用hugeannex在2010-12-11 13:29:24的发言:

还有,各人的要求不同,楼主是死活抱着IE6了,而我是用IE6的就让他慢去。
所以,我向未来看齐,楼主向过去看齐。。。无话可说了
我倒是不想死抱着IE6,可谁让那么多的人还是在用IE6啊,我经常抱怨微软为什么还不淘汰IE6,他就不能发发狠,谁用IE6就不能上网,或者谁上网就强行升级成IE8该多好啊,我还省的费这么大劲了呢,一想起来这么多人用IE6我就想骂街,NND,有那么多好浏览器,为什么那帮人就非抱着IE6用啊,麻烦死我了。

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-12-11 21:04
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
话说,IE6有很多javascript的新功能都不能用,包括一些HTML标签中的新属性都不支持,写代码费死牛劲了,等会儿我骂完街再回来继续说

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-12-11 21:05
快速回复:针对字符串连接方式,做的测试
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056719 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved