免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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

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

关注

评论

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

webview最全面总结(二)全面介绍webview用法

android 程序员 移动开发

[译] Android 的多摄像头支持

android 程序员 移动开发

[译] 使用自定义文件模板加快你的应用开发速度

android 程序员 移动开发

umi(1)

android 程序员 移动开发

WebSocket学习

android 程序员 移动开发

区块链之共识算法系列——PoW(一)

Regan Yue

区块链 11月日更

这一篇 K8S(Kubernetes)集群部署 我觉得还可以

牧小农

kubenetes

TCP_UDP协议详解(1)

android 程序员 移动开发

[译] Android 模拟器:Project Marble 中的改进

android 程序员 移动开发

phonegap照相插件的使用

android 程序员 移动开发

QMUI框架简介

android 程序员 移动开发

svn 使用方法(1)

android 程序员 移动开发

vue学习(三)—vue

android 程序员 移动开发

[译] 如何用 Flutter 来创建一个带有底部导航栏的应用程序

android 程序员 移动开发

Realm数据库使用教程(五):删除数据

android 程序员 移动开发

RxHttp-完美适配Android-10-11-上传-下载-进度监听

android 程序员 移动开发

TCP_UDP协议详解

android 程序员 移动开发

webRTC(十四):webrtc 端到端文本聊天

android 程序员 移动开发

React Native for Android 原理分析与实践:实现原理

android 程序员 移动开发

RecyclerView

android 程序员 移动开发

tinker热修复gradle接入

android 程序员 移动开发

[译] Android 中的 MVP:如何使 Presenter 层系统化?

android 程序员 移动开发

[译] Android 的多摄像头支持(1)

android 程序员 移动开发

Stetho简化Android调试(一)

android 程序员 移动开发

windows环境下JSP环境搭建:Apache2

android 程序员 移动开发

ViewPager2重大更新,支持offscreenPageLimit

android 程序员 移动开发

[译] 如何将 Stackdriver 连接到智能家居服务器以进行错误记录

android 程序员 移动开发

svn 使用方法

android 程序员 移动开发

Thinkphp5使用model模型操作数据库

android 程序员 移动开发

Router_一款单品、组件化、插件化全支持的路由框架

android 程序员 移动开发

SLF4J 的几种实际应用模式--:SLF4J+Log4J 与 SLF4J+LogBack

android 程序员 移动开发

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