写点什么

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

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

关注

评论

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

Mysql的逻辑架构与存储引擎

编程江湖

MySQL

存储空间降为MySQL的十分之一,TDengine在货拉拉数据库监控场景的应用

TDengine

数据库 大数据 tdengine 物联网

企业堡垒机搭建核心需求是什么?可以自己研发搭建吗?

行云管家

网络安全 信息安全 数据安全 IT资产

Linux云计算好学吗?Linux云计算运维学习资料 Linux基本操作命令

学神来啦

深入理解百度在离线混部技术

百度Geek说

云计算 云原生 后端

Linux之|etc|group文件

入门小站

Linux

某厂审批流引擎核心技术揭秘

空空

Cloudera的企业数据云

郭华

云计算 大数据 数据仓库 云原生

JavaScript 浅拷贝与深拷贝

编程江湖

开源服务社会:EMQ 映云科技获评“优秀中国开源原生创企”

EMQ映云科技

物联网 开源项目 mqtt

面向对象

你?

一个cpp协程库的前世今生(十六)读写锁

SkyFire

c++ cocpp

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

张祥

架构实战营

Flutter:GridPaper 示例

坚果

flutter 1月月更

Spring Boot 实现通用 Auth 认证的 4 种方式

李尚智

Java springboot spring 5 1月月更

什么是生产管理?制造企业想要做好生产管理应该怎么做?

优秀

企业生产管理

前端开发之JS数组去重方法

@零度

JavaScript 前端开发

当技术重构遇上DDD,如何实现业务、技术双赢?

百度Geek说

架构 后端 DDD 技术债

大数据开发之SparkSQL面试篇

@零度

大数据 spark SQL

浅析SaaS软件和传统软件交付模式的区别

郑州埃文科技

一步一步理解Generator函数的原理

恒生LIGHT云社区

JavaScript 前端 Generator

InfoQ写作平台|Python板块试运行

IT蜗壳-Tango

InfoQ-Python板块

时空大数据 AI 研究院在京成立,助推时空产业高质量发展

百度大脑

人工智能

到底什么是云?其实云计算从业者也不懂!

Geek_f56666

云计算

Hoo研究院调研报告 |从公链Terra生态看区块链稳定币的三大核心产品

区块链前沿News

Hoo 虎符交易所 虎符研究院

FabEdge V0.4 新特性:支持多集群通讯

BoCloud博云

云原生 边缘计算 网络 开源社区

建立堡垒机的原则有哪些?需要注意哪些方面?

行云管家

网络安全 数据安全 信息泄露 资产安全

在线HTTP/HTTPS协议GET,POST,RESTful接口测试

入门小站

工具

IOS技术分享| anyRTC 互动白板场景实现

anyRTC开发者

ios 音视频 在线教育 视频会议 互动白板

技术干货 | ToB 业务场景下自动化测试的实践及探索

网易云信

运维 自动化

恒源云(GPUSHARE)_云GPU服务器如何使用iKataGo?

恒源云

运维 镜像 算力

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