@inproceedings{92ae9a2c36c34f499f0f91c7c9f79989,
title = "Optimization coaching for JavaScript",
abstract = "The performance of dynamic object-oriented programming languages such as JavaScript depends heavily on highly optimizing just-in-time compilers. Such compilers, like all compilers, can silently fall back to generating conservative, low-performance code during optimization. As a result, programmers may inadvertently cause performance issues on users' systems by making seemingly inoffensive changes to programs. This paper shows how to solve the problem of silent optimization failures. It specifically explains how to create a so-called optimization coach for an object-oriented just-in-time-compiled programming language. The development and evaluation build on the SpiderMonkey JavaScript engine, but the results should generalize to a variety of similar platforms.",
keywords = "JavaScript, Optimization coaching, Performance tools",
author = "Vincent St-Amour and Guo, {Shu Yu}",
note = "Funding Information: We would like to thank Niko Matsakis, Dave Herman, and Michael Bebenita for discussions and suggestions about the tool''s design and development. Kannan Vijayan, Luke Wagner, and Nicolas Pierron helped with the design of the profiler-driven instrumentation. Finally, we thank Matthias Felleisen, Sam Tobin-Hochstadt and Jan Vitek for their comments on previous drafts. This work was partially supported by Darpa, NSF SHF grants 1421412, 1421652, and Mozilla. Publisher Copyright: {\textcopyright} Vincent St-Amour and Shu-yu Guo;.; 29th European Conference on Object-Oriented Programming, ECOOP 2015 ; Conference date: 05-07-2015 Through 10-07-2015",
year = "2015",
month = jul,
day = "1",
doi = "10.4230/LIPIcs.ECOOP.2015.271",
language = "English (US)",
series = "Leibniz International Proceedings in Informatics, LIPIcs",
publisher = "Schloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing",
pages = "271--295",
editor = "Boyland, {John Tang}",
booktitle = "29th European Conference on Object-Oriented Programming, ECOOP 2015",
}