InfoQ

新闻

分析JavaScript的性能

作者 Scott Delap译者 张凯峰 发布于 2007年9月3日 下午5时56分

社区
Java
主题
Web框架,
JavaScript
标签
AJAX

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

没有回复

回复

深度内容

Flex与JSON及XML的互操作

平台需要互操作性。在这篇文章中,作者仔细研究了Flex和JSON及XML的互操作性。文章也包含了使用E4X库来将XML映射到图表和表格组件的内容,还演示了如何使用as3core库来解码JSON消息。

用Qi4j进行面向组合编程

本文将简要介绍面向组合编程(COP,Composite Oriented Programming)的概念,展示它如何规避OOP存在的一些问题,并重新点燃使用可重用部件组装领域模型(Domain Model)的希望。

系统开发——新学科,新教育

一门新的计算机学科——“系统开发”,强调人性化、匠艺、设计、创意、创新和新事物的涌现,并建议用被称为“bottega”的工作室替代乏善可陈的教室。

图书聚焦:Visual Studio 2008 揭秘

Mike Snell和Lars Powers用他们最近由Sams出版的新书《Visual Studio 2008揭秘》,试图帮助大家提高开发人员的生产力。本文包括一个下载样章——第10章调试。

BPEL为何不是BPM的圣杯?

Pierre Vigneras在本文中讨论了作为标准之一的BPEL所存在的问题。Pierre先给我们大致介绍了一个简单的并行流程,接着讨论了从业者在试图以一个结构化模型为基础表达非结构化流程时遇到的一系列问题。

基于范型的多语言编程

你是否仔细思考过,为什么人们总在讨论“要正确的语言做恰当的事情”?在这篇文章中,Sadek Drobi向你解释了为什么应该在系统内部混合使用多种语言。

采访与书摘《Pro Web 2.0 Application Development with GWT》

Jeff Dwyer就关于他的新书(《Pro Web 2.0 Application Development with GWT》)、GWT1.5以及创建可搜索的Ajax应用谈了一些他的见解。

时刻准备着,迎接IT业的春天

我们需要设身处地地为客户及客户的业务本身着想,与客户同舟共济。更多创新的思路、产品和模式也同样将为IT业带来新的出路。IT业并不需要坐以待毙,在春天到来之后,市场将会更加繁荣!