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
  • asp之家 网络编程 m.aspxhome.com