写点什么

研究 JavaScript 性能

  • 2008-02-14
  • 本文字数:625 字

    阅读完需:约 2 分钟

性能问题常常在你开发最新最棒的 web 2.0 应用程序时悄然而至,成为你的绊脚石。很多时候,性能问题仅是由极为平常的良性操作所造成。最近, Coach Wei 许多不同的 Javascript 操作的性能及其在各浏览器下的性能表现作了快速的比较与小结。结果实际上并不完全出乎我们的意料。

正如所料,eval 仍然很“邪恶”,在所有的浏览器下都很慢。但特别有趣的是,说它在 Safari 下性能差似乎并不公平,因为相对于 eval 在 IE7 下需要 172ns,在 Firefox 下需要 546ns 的表现,它在 Safari 下只占用 9.4ns。Shift 和 Join 这些数组操作在众浏览器下都很扯性能的后腿。

在他的结果报告中,有一点很有意思,但也是意料之中的事,那就是,IE 在性能方面的表现不如其它浏览器,尤其是在关键的 computed box model 计算、String 处理、以及 HTML DOM 操作方面。另外,正如我们之前所看到的,虽然较新的浏览器版本有一些改善,但 DOM 操作一般在各浏览器下的开销依旧很大。而且,使用 innerHTML 似乎仍然比完成相同任务的 DOM 操作性能更好。

该研究报告中,其它一些值得关注的要点有:

  • Safari 的 pop 数组操作明显不及其他浏览器的实现。
  • 计算 computed style 和 computed box model 开销可能很大……这可能是由于每次调用对 currentStyle 属性进行重计算所造成。
  • 对象的创建和"in"操作在 Firefox 下运行得比其他浏览器慢。

Coach Wei 的关于比较结果的综合表,很值得一看,很多结果都可以成为你 debug 性能瓶颈时的指南。

查看原文: Studying JavaScript Performance

2008-02-14 22:441641
用户头像

发布了 71 篇内容, 共 23.6 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

中年危机,我们如何面对?

石云升

MyBatis 3 XML配置

杨家昌

mybatis mybatis-config.xml XML配置 配置

为什么很多技术都觉得前端很简单?

极客时间

大前端

new[]和delete[]为何要配对使用?

泰伦卢

c c++ C#

开源一个自研的基于Netty的高性能网络通信框架

Geek_373e87

TCP dubbo Netty

小米手机广告在日本「炸」了,背后的教训是什么?

葛仲君

产品 本地化 小米 日本 文化

源码分析shared_ptr实现

泰伦卢

c c++ C#

这样理解Java中的函数式编程就对了

jerry

java8 函数编程

IT人的职业提升只靠技术精进行的通吗?

MavenTalker

程序员 程序人生 职业规划 技术人

自助设备系列——自助设备的春天

孙苏勇

产品

一种消息消费失败的处理方案

redis kafka

算法篇之数组右移

月夜

算法 数组右移

快速开发那点事儿 | 选择最合适的轮子,量产跑车

Java_若依框架教程

敏捷开发 JAVA开发 RouYI 快速开发

央行:取消境外机构投资者额度限制,推动金融市场进一步开放

kimmking

讨论:应不应该用存储过程?

kimmking

第一篇InfoQ的博客

程序员小岑

写作 体验

基于大疆无人机SDK二次开发

sydMobile

android 无人机

Flutter 中SharedPreferences 的初始化?

三爻

flutter android

关于架构的几件小事:架构是什么

北风

架构 企业架构

spring boot 集成 elasticsearch 7.x (一)

wd

elasticsearch high level client

地址收录

gogogo

MyBatis 3 解析mybatis-config.xml配置

杨家昌

深度解析 mybatis 初始化 XMLConfigBuilder Configuration

Flink 作为现代数据仓库的统一引擎:Hive 集成生产就绪!

Apache Flink

大数据 flink 流计算 实时计算

MyBatis 3 解析Mapper映射配置

杨家昌

mybatis 配置 Mapper XMLMapperBuilder

专题:快速开发那点事儿 | 轮子怎么选

Java_若依框架教程

Java 敏捷开发 Ruoyi 快速开发

hive 建表语句迁移

飞哥

没有业务规则的技术实现

wd

吐槽

iTerm2使用小技巧-密码管理器

小菜与老鸟

iTerm

言简意赅,聊聊RPC的123事

一叶而不知秋

RPC

游戏夜读 | 有哪几种游戏玩家?

game1night

【预告】千亿数据的潘多拉魔盒:从分库分表到分布式数据库

kimmking

分布式数据库 分库分表 分布式系统 中间件

研究JavaScript性能_Java_James Carr_InfoQ精选文章