写点什么

分析 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:562272
用户头像

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

关注

评论

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

2022vue面试题+答案

buchila11

Vue Vue 3

多标签分类中的损失函数与评价指标

月来客栈

PyTorch 多标签 多标签分类 文本分类

富文本编辑器之游戏角色升级ing

vivo互联网技术

Java 大前端 富文本 富文本编辑器

架構實戰營 - 模塊 7 作業

Frank Yang

架构实战营

【Flutter 专题】96 图解 Draggable + DragTarget 基本拖拽效果

阿策小和尚

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

一条SQL语句执行的背后

卢卡多多

log sql 更新 执行顺序 7月日更

IPC阿波罗公链软件系统开发搭建

Redisson 分布式锁源码 03:可重入锁互斥

程序员小航

redis 源码 分布式锁 redisson

Linux之locate命令

入门小站

Linux

架构实战营 模块七作业

Dylan

架构实战营

JavaScript数组详解-全网最全

二郎神杨戬

7月日更

图分析入门

6979阿强

Rust从0到1-Cargo-发布到Crates.io

rust 发布 cargo crates.io publish

架构实战营-模块一作业

思梦乐

架构实战营

在线HTTP请求/响应头转JSON工具

入门小站

工具

模块七 作业

CR

架构训练营模块七作业

Neil43

架构训练营

架构之:微服务和单体服务之争

程序那些事

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

海洋之星系统开发|海洋之星软件APP开发

反恶意收购的几种方式

石云升

职场经验 7月日更

UD众筹链/UD生态系统APP开发详情

Go 学习笔记之 整型数据类型

架构精进之路

Go 语言 7月日更

模块七:课后作业

Geek_9cf7b5

架构实战营模块 7

阿体

@Autowired报错原因分析和4种解决方案!

王磊

Java spring springboot @Autowired注入原理 Autowired

根据舌苔判断身体状况

kof11321

6 月日更总结 | 总是断更的失败经验分享

耳东@Erdong

7月日更 日更

联想科技产业行——大众集团走进联想:智慧科技赋能汽车行业智能化变革

科技大数据

科技互联网 新未来 联想

Vue.js+ElementUI+vant生成动态表单配置

二郎神杨戬

7月日更

社交软件上“你可能认识的人”到底是怎么找到你的?

华为云开发者联盟

知识图谱 社交软件 TransE模型 用户画像 知识图谱补全

架构实战营 - 模块一作业

Julian Chu

#架构实战营

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