Changes

Jump to: navigation, search
no edit summary
Andreas Gal, Jim Blandy, Brendan Eich, Mike Shaver Tracing and JavaScript performance Tracing is a technique for implementation of just-in-time compilation well-suited to the needs of JavaScript on the web: it exhibits extremely good compilation performance (in space and speed), even when performing aggressive optimizations, and can efficiently cope with dynamic typing. In addition, it can be implemented in a minimally invasive and incremental manner. Tracing is employed in the experimental Hotpath Java virtual machine, the upcoming luajit2 implementation of the Lua language, the "Tamarin Tracing" ActionScript/JavaScript runtime, and now in the "Tracemonkey" project to bring native code performance to Mozilla's Spidermonkey JavaScript engine. This session will provide a background in trace-based JIT compilation, an overview of the current state of Mozilla's tracing-related work, and future plans. Spirited discussion of relative implementation priorities and schedules will no doubt ensue. Fundamentals of tracing: an introduction to the basic principles of tracing (link to papers)* trace specialization and guarding** shape induction* interaction between interpreter and JIT compiler* applying optimizations to traces nanojit: a lightweight native code generator specialized for tracing* implementation of TSSA* back-end implementation status Tamarin Tracing status:* relationship to "Tamarin Central"* status and near-term goals* performance characteristics* current challenges Tracemonkey status: an overview of current Tracemonkey capabilities, and discussion* differences from Tamarin Tracing* work so far (timeline, design choices)* near-term goals* preliminary performance results* current challenges Future work: making more of our code available to tracing, additional optimizations* self-hosting the DOM* escape analysis and allocation removal Tracing beyond JavaScript: can we apply tracing techniques to other areas of code? Further reading:* [http://www2.imm.dtu.dk/~probst/files/GalProbstFranz_VEE2006.pdf HotpathVM: an effective JIT compiler for resource-constrained devices.]* [http://www.ics.uci.edu/~franz/Site/pubs-pdf/C44Prepub.pdf One Method At A Time Is Quite A Waste Of Time]* [http://www.ics.uci.edu/%7Efranz/Site/pubs-pdf/ICS-TR-07-10.pdf Efficient Just-In-Time Execution of Dynamically Typed Languages Via Code Specialization Using Precise Runtime Type Inference]* [http://www.ics.uci.edu/%7Efranz/Site/pubs-pdf/ICS-TR-06-16.pdf Incremental Dynamic Code Generation with Trace Trees]
Confirm
455
edits

Navigation menu