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,数组,性能,对象
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
大内存SQL Server数据库的加速剂
2009-03-06 14:18:00
SQL 2008邮件故障排除:发送测试电子邮件
2008-12-02 14:28:00
让ASP组件来保护你的网站,自定义加密方法的使用
2009-11-07 19:27:00
MySQL数据库的23个特别注意事项
2010-08-08 14:43:00
IE8将是IE的最后一个版本?
2009-03-12 12:44:00
如何让用户再次访问我的网站时不需再提交相关信息?
2010-05-16 15:05:00
SQL Server上进行表设计时表的主键设计问题
2010-06-24 16:10:00
巧用JDBC实现对MySQL的“增删改查”
2008-12-31 15:12:00
有时用户并不需要引导
2009-07-17 18:48:00
![](https://img.aspxhome.com/file/UploadPic/20097/17/ceshi-96s.png)
解决MSSQL下“不能在手动或分布事务方式下创建新的连接”的问题
2008-07-15 12:48:00
jQuery.animate简单分析
2010-06-26 12:45:00
asp下实现代码的“运行代码”“复制代码”“保存代码”功能源码
2011-04-14 10:39:00
Google的设计导引
2008-04-06 14:18:00
很酷的JQuery Solar System
2007-12-15 08:09:00
![](https://img.aspxhome.com/file/UploadPic/200712/15/200712158138849s.png)
asp如何实现按照输入汉字提示拼音功能?
2010-05-18 18:37:00
[欣赏] 情景互动广告
2008-08-06 12:59:00
![](https://img.aspxhome.com/file/UploadPic/20088/6/200886131045714s.jpg)
详解SQL Server分布式查询
2010-09-19 09:07:00
![](https://img.aspxhome.com/file/UploadPic/20109/2010919145644172s.jpg)
使用javascript+xml技术实现分页浏览
2008-05-29 13:49:00
如何应对SQL Server数据库崩溃
2008-11-24 17:25:00
SQL SERVER 与ACCESS、EXCEL的数据转换方法分享
2012-02-25 20:17:22