JSBench: Automatically Constructing Realistic JavaScript Benchmarks

While artificial benchmark suites such as SunSpider have become popular in recent years, recent work has shown that their behavior is unrepresentative of real JavaScript applications found in the wild.

The goal of JSBench is to rectify this problem by using real-world JavaScript programs as benchmarks. As real web pages are highly interactive, this task involves reproducing a sequence of user-initiated events in a consistent way across subtly-incompatible browsers and JavaScript engines. This is accomplished by a source-level instrumentation to produce a record-replay system. This method has several advantages:

  • Has sufficient fidelity to accurately recreate much of the dynamic characteristics of the original program.
  • Is sufficiently flexible that a recording produced in one environment can be replayed in a different environment.
  • Creates benchmarks which require no more expertise to use than the currently-existing industry-accepted benchmarks.

This talk will cover the concepts, implementation, complications and results of this project.

Speaker Details

Gregor Richards is a 3rd year Ph.D. student at Purdue University where he works on dynamic languages and runtime analysis with Jan Vitek. His recent work on dynamic behavior of the JavaScript language appeared in PLDI’10. In his free programming time he writes senselessly-dynamic software, such as my programming language Plof and wiki Hackiki. When not writing terrifying code I play the piano and when the opportunity strikes he likes to play extreme croquet. He is also renown for an extensive collection of hats and ties.

Date:
Speakers:
Gregor Richards
Affiliation:
Purdue University
    • Portrait of Jeff Running

      Jeff Running