写点什么

研究 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:441384
用户头像

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

关注

评论

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

Jira 要停售本地私有化部署的版本了,这对国产项目管理软件是机会吗?

万事ONES

项目管理 Atlassian Jira ONES

牙膏踩爆!Intel 5nm工艺曝光:直逼IBM 2nm

E科讯

模块八:课后作业

菲尼克斯

架构实战营

Python OpenCV 霍夫(Hough Transform)直线变换检测应用

梦想橡皮擦

7月日更

ARTS 打卡计划-1

语霖

怎么借助Camtasia给电脑游戏录屏

淋雨

视频剪辑 Camtasia 录屏

对话系统简介与OPPO小布助手的工程实践

OPPO小布助手

人工智能 对话 智能助手 智能对话

IPFS算力挖矿排行榜,IPFS挖矿公司排行榜

超视频化到来,你能看见什么?

阿里云CloudImagine

阿里云 计算机视觉 音视频 视频 视频云

官宣!DataPipeline2021数据管理与创新大会将于7.29北京重装开启!

DataPipeline数见科技

大数据 数据融合 数据管理

工业互联网赋能 浪潮云洲助力区域品牌“走出去”

工业互联网

Vue进阶(幺捌伍):动态设置系统字体

No Silver Bullet

Vue 7月日更 字体设置

图解堆排序,带你彻底了解清楚!

程序员的时光

Java 面试 算法 排序算法 堆排序

架构之:REST和RESTful

程序那些事

微服务 软件架构 程序那些事

手写QuickSort算法

实力程序员

程序员 算法 成长 C语言

IPFS挖矿值得投资吗?IPFS挖矿前景如何?

索信达首席科学家张磊:以AI创新技术满足金融场景的“私人定制”

索信达控股

大数据 数字化转型 银行数字化转型

Go 学习笔记之 方法

架构精进之路

Go 语言 7月日更

【LeetCode】减小和重新排列数组后的最大元素Java题解

Albert

算法 LeetCode 7月日更

EasyRecovery深度扫描以恢复桌面遗失数据的方法

淋雨

EasyRecovery 文件恢复 硬盘数据恢复

《面试补习》- 你来说说什么是限流?

九灵

Java 面试 分布式 sentinel 限流

微信架构图

Geek_36d3e5

如何打造高效好用的终端?拿来吧你!

童欧巴

大前端 iterm2 Oh My Zsh

建立对分布式锁的系统认知-从Redlock开始

刘绍

程序员 分布式 分布式锁 RedLock redisson

Git工作流中常见的三种分支策略:GitFlow、GitHubFlow和GitLabFlow

华为云开发者联盟

git 软件开发 工作流 GitFlow GitHubFlow

Rust从0到1-并发-线程

rust 线程 并发 Thread Concurrency

【Flutter 专题】86 初识状态管理 Bloc (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 7月日更

带你换个角度理解图卷积网络

华为云开发者联盟

神经网络 卷积神经网络 图神经网络 卷积 图网络

Vue进阶(幺零六):子组件处理父组件异步值传递给子组件处理

No Silver Bullet

Vue 组件 监听 7月日更

什么是网络单纯型算法

华为云开发者联盟

算法 线性规划 网络单纯型 计算矩阵

对产品来说,颜值、体验是不是很重要?

石云升

用户体验 职场经验 7月日更

研究JavaScript性能_Java_James Carr_InfoQ精选文章