2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

React 任务调度

贝壳大前端技术团队

前端 React

细节的问题

将军-技术演讲力教练

抬头看天

xujiangniao

知识梳理

分布式锁及其实现

xcbeyond

分布式锁 28天写作 12月日更

如何在 CentOS 8 服务器上安装 ISP Config 3.2?

Ethereal

服务器 ISP CentOS 8

模块二作业

whoami

「架构实战营」

[Pulsar] Producer 流控

Zike Yang

Apache Pulsar 12月日更

架构实战营 4 期第二模块作业

jialuooooo

架构实战营

性能工具之linux三剑客awk、grep、sed详解

zuozewei

Linux 性能测试 12月日更

文本编辑器GNU Nano 6.0 发布!

Ethereal

Nano

反射

Nydia

Dubbo框架学习笔记五

风翱

dubbo 12月日更

演绎法、归纳法、辩证法

mtfelix

28天写作

TCP报文发送的那些事

程序员历小冰

网络 TCP/IP 28天写作 12月日更

Go+ URL 解析教程(5.6)

liuzhen007

28天写作 12月日更

16.  《重学JAVA》--1.8新日期类

杨鹏Geek

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

Turbine

李子捌

微服务 28天写作 12月日更

47 K8S之 Ingress资源

穿过生命散发芬芳

k8s 28天写作 12月日更

.NET 6新东西--高性能日志

喵叔

28天写作 12月日更

不太推荐 《沟通的方法》(17/28)

赵新龙

28天写作

读《思辨与立场》-05批判性思维发展的四个层级

wood

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

保护自己电脑绝对不做黑客肉鸡

喀拉峻

网络安全 安全

存量经营

张老蔫

20强诞生!2021 OceanBase 数据库大赛决赛酣战在即!

OceanBase 数据库

开源 oceanbase 高校 OceanBase 数据库大赛

学生管理系统架构文档

drizzle

「架构实战营」

HTTP超时处理

JavaEdge

12月日更

面向WEB开发人员的Docker(七):使用 Docker 开发Node应用程序

devpoint

node.js Docker 12月日更

详解PON基础知识:OLT、ONU、ONT和ODN,建议收藏

Ethereal

pon 光纤 弱电工程师

如何在 Debian 11 上使用 Nginx 安装 HTTP Git 服务器

Ethereal

nginx git HTTP Debian 11

【LeetCode】换酒问题Java题解

Albert

算法 LeetCode 12月日更

吹水的6大坏习惯

搬砖的周狮傅

沟通艺术

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