写点什么

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

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

关注

评论

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

用户痛点与根因识别:解锁企业数字化转型成功的关键

L3C老司机

火山引擎边缘云,助力业务敏捷创新

火山引擎边缘云

CDN 边缘计算 火山引擎 边缘云

程序踩内存后,应该怎么排查

linux大本营

进程 内存管理 内存泄漏 C++

lwip_recv_tcp阻塞读取数据代码

linux大本营

TCP 阻塞队列

OpenCV图像模糊操作(1) | 社区征文

A小调协奏曲

OpenCV C++ 三周年连更

大型商业银行的超级App是如何“组装”而成?

Onegun

超级app 超级应用

Django笔记十二之defer、only指定返回字段

Hunter熊

Python django defer only

2023-04-20:有一堆石头,用整数数组 stones 表示 其中 stones[i] 表示第 i 块石头的重量。 每一回合,从中选出任意两块石头,然后将它们一起粉碎 假设石头的重量分别为 x 和

福大大架构师每日一题

golang 算法 rust 福大大

小程序自定义组件开发

程序员海军

小程序 三周年连更

MobTech 秒验|守护账户安全

MobTech袤博科技

xnginx在安全网关的应用场景

linux大本营

openresty 网关 web服务器

借由Net5.5G,看到运营商的新沧海

脑极体

5.5G

薪资结构重铸: Zebec将业务范围扩大到Web2薪资管理领域

股市老人

生活中的不确定性,如何应对?

Jack

阿里云张献涛:云原生计算基础设施助力汽车行业数字化升级

云布道师

云计算

WebIntents 翻身战,操作系统实现无缝集成的王牌

鼎道智联

AI

Java EE应用服务器的事务管理

mazhen

Java transaction JavaEE

挑战 30 天学完 Python:Day10 循环语句

MegaQi

Python3 挑战30天学完Python 三周年连更

怎么用systemd进行进程守护

linux大本营

Linux 进程 守护进程

中国年轻人阅读洞察2023

易观分析

年轻人 阅读

OceanBase 4.1解读:我们想给用户一个开箱即用的OceanBase部署运维工具

OceanBase 数据库

数据库 oceanbase

算法题每日一练:组合总和 II

知心宝贝

数据结构 算法 前端 后端 三周年连更

io_uring的10个技术点

linux大本营

高并发 异步 零拷贝 io_uring

c语言实现timer的10个技术点

linux大本营

进程 定时器, Timer 文件描述符

分析nginx访问日志,统计前10的ip

linux大本营

nginx 日志

Go HTTP 调用

陈明勇

Go golang HTTP 三周年连更

一键生成通用的web服务(gin)完整项目代码,开发效率至少提升2倍

vison

golang Web gin框架 代码自动生成

OpenResty接口的详细讲解

linux大本营

负载均衡 反向代理 openresty 网关 HTTP服务

PageObject设计模式

测吧(北京)科技有限公司

测试

C++如何拿到线程池的返回值

linux大本营

线程池 C++

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