写点什么

分析 JavaScript 的性能

  • 2007-09-03
  • 本文字数:845 字

    阅读完需:约 3 分钟

Kirk Pepperdine 在一篇新文章中详细讨论了关于JavaScript 性能的主题。他的第一个发现是JavaScript 引擎规范要比JVM 的脆弱的多。有太多的JavaScript 实现,各自具有不同的执行环境。除了这一点外,他还深入了下列主题:

Getters/Setters

……我所遭遇的最具争议的一项建议,在 Java 世界里已经很久没人提起过了。这项建议是,应该避免使用 getter 和 setter,而应当采用直接访问来避免方法调用的额外开销。这项建议错在哪里?更重要的是,它对在哪里?在 Java 中使用 getter 和 setter 是被普遍认可的……

Ajaxian 和 JQuery 的创建者 John Resig 曾经讨论过 getter 和 setter。就像这个网站所演示的,是出于性能上的考虑。

由于缓存造成的糟糕的局部基准评测(Micro-benchmark

……由于 JavaScript 引擎中少得多的动态优化,有人会觉得局部基准评测要比在 Java 中容易得多。虽然问题是不同的,但是 JavaScript 的局部基准评测也没那么容易。糟糕的局部基准评测的最普遍的原因是缓存。在 Web 世界中缓存无处不在,伴随始终。而且通常它隐藏的很深……

内存泄露

……最有趣的发现是关于内存泄露和内存调优的优秀 blog 很少……我的最大问题是,如何在浏览器中得到来自 JavaScript 的内存泄露呢。我发现有几种好办法。第一个是在 DOM 中保留大量的隐藏元素……另一种更有趣和更可憎的内存泄露来自于闭包……

CPU 负载

……最后,几篇讨论客户机性能的 blog 指出一个存在的问题,但似乎遇到这个问题的 JavaScript 应用程序并不太多。这个问题就是过度使用 JavaScript 会耗尽 CPU……如果你试图让 JavaScript 做太多事情,它就会约束客户机的 CPU 效率(在那种情况下,性能削减的厉害)……

Pepperdine 在结束时提到 Yahoo 的基于 Firebug 的新性能工具 YSlow ,它能够检查大量预先定义好的常见 JavaScript 性能问题。另外一个最近发布的性能工具是 JsLex ,它可以比较 JavaScript 的执行性能,类似于 jProfile。微软研究院也在开发一种调优代理技术,叫做 Ajax View

查看英文原文: Analyzing JavaScript in Respect to Performance

2007-09-03 17:562059
用户头像

发布了 127 篇内容, 共 45.3 次阅读, 收获喜欢 5 次。

关注

评论

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

在线JSON转Rust工具

入门小站

工具

父母的陪伴对孩子长大非常重要

Tiger

28天写作

[架构实战营] 模块二作业

Geek_0ed632

架构实战营

模块三作业

Geek_e6f7f6

架构实战营

读《思辨与立场》-06思维的要素-01

wood

28天写作 批判性思维 思辨与立场

明道云APaaS实践将GTD方法落地

明道云

Prometheus Exporter (三十)IPMI Exporter

耳东@Erdong

Prometheus 28天写作 exporter 12月日更 IPMI

给弟弟的信第16封|人为什么会抑郁

大菠萝

28天写作

面向WEB开发人员的Docker(八):将 Docker 镜像推送到仓库

devpoint

Docker 12月日更

架构训练营模块二作业

沈益飞

架构师训练营 4 期

架构实战营模块二作业

曾竞超

架构实战营 「架构实战营」

用明道云,一小时复刻两个月自研的账款系统

明道云

HTML制作3D樱花漫天飞舞及浪漫信封

海拥(haiyong.site)

大前端 代码中的浪漫 28天写作 12月日更

公理设计:由奇怪海战引发的软件设计思考

程序员历小冰

设计模式 28天写作 12月日更

mitmproxy与安卓模拟器搭配,助力Python爬虫工程师,然后就可以爬CSDN粉丝数据了

梦想橡皮擦

12月日更

生活意义的缺失是当代都市人的必然窘境

mtfelix

28天写作 生活的意义

第二周作业

lv

来也科技UiBot 6.0社区版全线免费,RPA距离人人可用还有多远?

王吉伟频道

RPA 机器人流程自动化 来也科技 社区版

Linux之touch命令

入门小站

Linux

五分钟就能学会,一辈子难以精通(18/28)

赵新龙

28天写作

起、承、转、合全赋能:华为应用生态为开发者带来了什么?

脑极体

无快不破,在本地 docker 运行 IDEA 里面的项目?

秦怀杂货店

Java 后端 springboot dcoker

如何在 Flutter 中使用MemoryImage【Flutter专题23】

坚果

flutter 28天写作 12月日更

Go语言原理分析-数组

王博

一个简单的socket小工具

为自己带盐

socket dotnet 28天写作 12月日更

下班之后的生活

卢卡多多

28天写作 12月日更

dart系列之:你的地盘你做主,使用Extension对类进行扩展

程序那些事

flutter dart 程序那些事 扩展 12月日更

【LeetCode】被围绕的区域Java题解

Albert

算法 LeetCode 12月日更

为什么要“除夕”,原来是内存爆了

悟空聊架构

JVM 内存 28天写作 悟空聊架构 12月日更

云原生应用的建设之路

巨子嘉

云原生

17《重学JAVA》--JAVA异常(一)

杨鹏Geek

Java 25 周年 28天写作 12月日更

分析JavaScript的性能_Java_Scott Delap_InfoQ精选文章