Automated construction of JavaScript benchmarks

Automated construction of JavaScript benchmarks
复制标题

DOI:
10.1145/2048066.2048119
复制
发表时间:
2011-10
期刊:
--
影响因子:
--
通讯作者:
G. Richards;A. Gal;Brendan Eich;J. Vitek
G. Richards;A. Gal;Brendan Eich;J. Vitek
中科院分区:
其他
文献类型:
--
作者:
G. Richards;A. Gal;Brendan Eich;J. Vitek

文献摘要

被引文献

相似文献

JavaScript是用于基于Web的应用程序的高度动态语言。近年来,开发了改进其速度和反应能力的创新实施技术。WebKit SunSpider等行业基准经常被引用作为这些技术有效性的衡量标准。然而,最近的研究表明,这些基准测试无法准确地表示现代JavaScript应用程序的动态特性,因此可能无法准确预测真实世界的性能。更糟糕的是,它们可能会指导开发对真实的应用程序没有帮助的优化。我们的目标是开发一种工具和技术,从现有的Web应用程序中自动创建现实的和有代表性的基准。我们提出了一种记录和重放的方法来捕获JavaScript会话,它具有足够的保真度,准确地重新创建原始应用程序的关键特性,并在同一时间是足够灵活的,在一个平台上产生的记录可以在不同的重放。我们描述了JSBench,一个灵活的工具,工作负载捕获和基准生成,并展示了它的使用在创建八个基准的基础上流行的网站。使用各种运行时的指标收集与仪表版本的Firefox,Internet Explorer和Safari,我们表明,由JSBench创建的工作负载匹配的原始Web应用程序的行为。
JavaScript is a highly dynamic language for web-based applications. Innovative implementation techniques for improving its speed and responsiveness have been developed in recent years. Industry benchmarks such as WebKit SunSpider are often cited as a measure of the efficacy of these techniques. However, recent studies have shown that these benchmarks fail to accurately represent the dynamic nature of modern JavaScript applications, and so may be poor predictors of real-world performance. Worse, they may guide the development of optimizations which are unhelpful for real applications. Our goal is to develop a tool and techniques to automate the creation of realistic and representative benchmarks from existing web applications. We propose a record-and-replay approach to capture JavaScript sessions which has sufficient fidelity to accurately recreate key characteristics of the original application, and at the same time is sufficiently flexible that a recording produced on one platform can be replayed on a different one. We describe JSBench, a flexible tool for workload capture and benchmark generation, and demonstrate its use in creating eight benchmarks based on popular sites. Using a variety of runtime metrics collected with instrumented versions of Firefox, Internet Explorer, and Safari, we show that workloads created by JSBench match the behavior of the original web applications.