JScript下Array对象的性能问题
作者:hax 来源:hax的技术部落格 时间:2009-02-15 12:28:00
今天看了微软JScript官方blog上去年的两篇文章:
http://blogs.msdn.com/jscript/archive/2008/03/25/performance-optimization-of-arrays-part-i.aspx
http://blogs.msdn.com/jscript/archive/2008/04/08/performance-optimization-of-arrays-part-ii.aspx
讲的是IE8对Array性能的改进,其中也解释了过去JScript对Array的内部实现及导致的性能问题。
我狗狗了一下,似乎没有中文文章介绍过,所以我就写一篇来稍作介绍——不过并非翻译——微软的人总不好意思自己骂自己——而我素来要痛打落水狗的。
首先,目前JScript中数组操作是很慢滴,有多慢呢?我们引用一下JScript团队第一篇blog的数据:
此段代码,IE7用了7秒,而IE8仅仅用时18毫秒。
如果你看了第一篇blog中所解释的原因,请注意
——其实它在忽悠你,真正的原因在第二篇里。
我这里有有个更加简单的测试代码:
你可以改变SIZE和count的值来观察。
基本上,pop()方法或者任何导致length减小的操作,都是非常耗费的——大体上与数组实际包含元素个数成正比。
这才是真正的性能杀手。
而且这一操作所要遍历的元素甚至包括非正整数索引(而只有索引为uint32才会被认为是数组元素):
可以发现结果也是基本与元素个数成正比。但是比前面要快一些。原因后面解释。
标签:jscript,array,数组,性能,对象
0
投稿
猜你喜欢
php利用新浪接口查询ip获取地理位置示例
2024-03-22 08:11:29
Python中with...as...的使用方法
2021-10-01 16:58:07
ASP连接11种数据库语法总结
2007-09-29 12:07:00
Python实现CNN的多通道输入实例
2021-10-10 11:33:07
Mysql联合查询UNION和Order by同时使用报错问题的解决办法
2024-01-12 18:44:35
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022-05-08 08:38:24
从MySQL 5.5发布看开源数据库新模式
2010-01-03 19:54:00
Python脚本利用adb进行手机控制的方法
2023-01-31 20:49:47
用python写PDF转换器的实现
2022-07-29 21:32:28
Python 分析Nginx访问日志并保存到MySQL数据库实例
2024-01-22 08:43:23
Python3 JSON编码解码方法详解
2023-10-12 15:46:43
微信小程序应用号开发体验
2022-03-12 12:56:02
mysql 锁表锁行语句分享(MySQL事务处理)
2024-01-14 23:17:58
Golang字符串常用函数的使用
2024-02-11 03:57:35
使用HTTP_X_FORWARDED_FOR获取客户端IP的严重后果
2022-06-22 04:44:29
MySQL 中行转列的方法
2024-01-25 23:55:59
PHP iconv 解决utf-8和gb2312编码转换问题
2024-04-29 13:56:58
perl常量、多维数组及变量的初始化的实例代码
2022-03-10 07:59:54
python自动化测试之setUp与tearDown实例
2021-07-01 13:35:13
Python闭包实现计数器的方法
2021-01-23 09:11:00