| Tracing for web 3.0: trace compilation for the next generation web applications |
| Full text |
Pdf
(647 KB)
|
Source
|
ACM/Usenix International Conference On Virtual Execution Environments
archive
Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments
table of contents
Washington, DC, USA
SESSION: Breaking barriers
table of contents
Pages 71-80
Year of Publication: 2009
ISBN:978-1-60558-375-4
|
|
Authors
|
|
Mason Chang
|
University of California, Irvine, Irvine, CA, USA
|
|
Edwin Smith
|
Adobe Corporation, Newton, MA, USA
|
|
Rick Reitmaier
|
Adobe Corporation, San Francisco, CA, USA
|
|
Michael Bebenita
|
University of California, Irvine, Irvine, CA, USA
|
|
Andreas Gal
|
University of California, Irvine, Irvine, CA, USA
|
|
Christian Wimmer
|
University of California, Irvine, Irvine, CA, USA
|
|
Brendan Eich
|
Mozilla, Mountain View, CA, USA
|
|
Michael Franz
|
University of California, Irvine, Irvine, CA, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 53, Downloads (12 Months): 291, Citation Count: 1
|
|
|
ABSTRACT
Today's web applications are pushing the limits of modern web browsers. The emergence of the browser as the platform of choice for rich client-side applications has shifted the use of in-browser JavaScript from small scripting programs to large computationally intensive application logic. For many web applications, JavaScript performance has become one of the bottlenecks preventing the development of even more interactive client side applications. While traditional just-in-time compilation is successful for statically typed virtual machine based languages like Java, compiling JavaScript turns out to be a challenging task. Many JavaScript programs and scripts are short-lived, and users expect a responsive browser during page loading. This leaves little time for compilation of JavaScript to generate machine code. We present a trace-based just-in-time compiler for JavaScript that uses run-time profiling to identify frequently executed code paths, which are compiled to executable machine code. Our approach increases execution performance by up to 116% by decomposing complex JavaScript instructions into a simple Forth-based representation, and then recording the actually executed code path through this low-level IR. Giving developers more computational horsepower enables a new generation of innovative web applications.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Adobe Systems Inc. ActionScript 3 Language Specification, 2006. http://livedocs.adobe.com/specs/actionscript/3/wwhelp/wwhimpl/js/html/wwhelp.htm.
|
| |
2
|
Adobe Systems Inc. ActionScript Virtual Machine 2 Overview, 2007. http://www.adobe.com/devnet/actionscript/articles/avm2overview.pdf.
|
| |
3
|
Adobe Systems Inc. Adobe Flex SDK, 2008. http://www.adobe.com/products/flex/flexdownloads/#sdk.
|
| |
4
|
|
 |
5
|
|
 |
6
|
Vasanth Bala , Evelyn Duesterwald , Sanjeev Banerjia, Dynamo: a transparent dynamic optimization system, Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation, p.1-12, June 18-21, 2000, Vancouver, British Columbia, Canada
|
 |
7
|
|
 |
8
|
C. Chambers , D. Ungar, Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.146-160, June 19-23, 1989, Portland, Oregon, United States
|
 |
9
|
|
 |
10
|
|
| |
11
|
ECMA. Standard ECMA-262: ECMAScript Language Specification, 3rd edition, 1999. http://www.ecma-international.org/publications/standards/Ecma-262.htm.
|
| |
12
|
M. Ertl and D. Gregg. The Structure and Performance of Efficient Interpreters. Journal of Instruction-Level Parallelism, 5:1--25, 2003.
|
 |
13
|
|
| |
14
|
C. Garrett, J. Dean, D. Grove, and C. Chambers. Measurement and Application of Dynamic Receiver Class Distributions. Technical Report CSE-TR-94-03-05, University of Washington, 1994.
|
 |
15
|
|
| |
16
|
|
 |
17
|
|
| |
18
|
JavaScript:TraceMonkey - Mozilla Wiki, 2008. https://wiki.mozilla.org/JavaScript:TraceMonkey.
|
| |
19
|
|
| |
20
|
Microsoft Developer Network. JScript (Windows Script Technologies), 2008. http://msdn.microsoft.com/en-us/library/hbxc2t98(VS.85).aspx.
|
| |
21
|
R. Milner. A Theory of Type Polymorphism in Programming. Journal of Computer and System Sciences, 17(3):348--375, 1978.
|
| |
22
|
Mozilla Foundation. SpiderMonkey (JavaScript-C) Engine, 2008. http://www.mozilla.org/js/spidermonkey/.
|
| |
23
|
Mozilla Foundation. Tamarin Central, 2008. http://hg.mozilla.org/tamarin-central/.
|
 |
24
|
|
| |
25
|
M. Pall. LuaJIT Roadmap, 2008. http://lua-users.org/lists/lua-l/2008-02/msg00051.html.
|
 |
26
|
|
| |
27
|
SunSpider JavaScript Benchmark, 2008. http://webkit.org/perf/sunspider-0.9/sunspider.html.
|
| |
28
|
Surfin' Safari -- Blog Archive -- Announcing SquirrelFish, 2008. http://webkit.org/blog/189/announcing-squirrelfish/.
|
| |
29
|
|
 |
30
|
|
CITED BY
|
|
Carl Friedrich Bolz , Antonio Cuni , Maciej Fijalkowski , Armin Rigo, Tracing the meta-level: PyPy's tracing JIT compiler, Proceedings of the 4th workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages and Programming Systems, p.18-25, July 06-06, 2009, Genova, Italy
|
|