写点什么

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

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

关注

评论

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

奈学教育:分布式架构,刚性事务-2PC必须注意的问题及3PC详细解说

奈学教育

分布式架构 2PC 3PC

分支管理模式

wiflish

git

变则通,通则久 —— 读《谁动了我的奶酪?》

YoungZY

读书 读书感悟

Linux 终端下记不住命令的使用方法?这个开源项目帮你解决。

JackTian

Linux 开源 运维 操作系统 命令

重学 Java 设计模式:实战建造者模式

小傅哥

设计模式 小傅哥 重构 代码质量 优化代码

ARTS - Week 1

Khirye

ARTS 打卡计划

spring-data-redis -- 一次执行链路的分析

常清静

Java spring springdataredis

zabbix实战指南(1)

橙子冰

zabbix

Kafka系列8:一网打尽常用脚本及配置,宜收藏落灰!

z小赵

大数据 kafka 实时计算

zabbix 实战指南(2)

橙子冰

zabbix

AutoConfigurationImportSelector到底怎么初始化

编号94530

Java spring Spring Boot import

原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (九)测试驱动开发(TDD)

编程道与术

Java 编程 软件测试 TDD 单元测试

七年老程序员面试经历

代码诗人

ARTS week 1

锈蠢刀

ES 操作之批量写-BulkProcessor 原理浅析

常清静

Java elasticsearch 后端

python实现·十大排序算法之堆排序(Heap Sort)

南风以南

Python 排序算法 堆排序

IDEA 插件开发实战

李孟聊AI

Java 工具 IDEA 插件 idea插件

回“疫”录(25):被颜色攻占的地方

小天同学

疫情 回忆录 现实纪录 纪实

游戏夜读 | 游戏代码之道

game1night

写给产品经理的信(3):抗压能力需要多强?

punkboy

生涯规划 产品经理 进阶 压力 工作方式

在 Go 中使用并发编程 - 第一部分

TuringTuring

并发编程 线程模型 Go 语言

算法:时间复杂度和空间复杂度

shirley

算法 时间复杂度

这个开源神器可快速帮你安装 MacOS 虚拟机!

JackTian

macos GitHub Linux 操作系统 虚拟机

眼前搁座金山也看不见

池建强

搜索引擎 学习

JavaScript 基础拾遗 —— this 的前世今生

hq

Java 学习 大前端

一文道尽 Excel 的 Criterion

张利东

Excel

Oracle误删数据闪回

阡陌r

Git 多用户多仓库配置 windows10

halapano

git

团队快速扩张时期的组织架构演进

小鲸数据

团队管理 团队协作 团队 团队组织

MySQL慢查询优化(线上案例调优)

NotFound9

MySQL 开源 架构 运维 编程语言

这么多年了,QQ没发现这个问题吗?

BabyKing

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