Virtualization odern Web applications are complex networks of code running on multiple servers and in clientside Web browsers. JavaScript is a dynamically typed, object-based scripting language in which the code is compiled to bytecode instructions at runtime (http://en.wikipedia.org/wiki/ JavaScript). It lets developers add interactivity at the client side of a Web application. However, JavaScript is an interpreted language, which is slower than compiled languages, and it can't take advantage of parallel multicore processors because it's sequential. Our aim with the work we present here is to speed up client-side execution. Researchers have suggested several JavaScript optimization techniques and benchmarks, but they're unrepresentative for JavaScript execution in Web applications. 1-3 For instance, the popular just-in-time (JIT) compilation technique -in which the JavaScript code is first compiled then executed as native code -decreases execution time for JavaScript benchmarks but often increases execution time in popular Web applications. 4 As a sequential programming language, JavaScript can't exploit the performance potential that parallel multicore processors offer. Many Web applications have the potential for significant parallelism, with speedups of up to 45 times compared to sequential execution. 5 However, support for parallel execution isn't present in any JavaScript engine. JavaScript lets developers provide client-side interactivity in Web applications, but because it is sequential, it can't take advantage of multicore processors. Thread-level speculation (TLS) addresses this issue by enabling the speculation of JavaScript function calls and thus exploits the parallel performance potential multicore processors provide. The authors implemented TLS in the Squirrelfish JavaScript engine, which is part of the WebKit browser environment. They evaluate their approach using 15 popular Web applications on an eight-core computer, and show significant speed-ups without any modifications to the JavaScript source code.
Martinsen et al. REF implement and analyze Thread-Level-Speculation for browsers' JavaScript engines to take advantage of parallel processors.
Using speculation to enhance javascript performance in web applications
IEEE Internet Computing
IEEE Internet Computing
Computer Science