Uncovering JavaScript performance code smells relevant to type mutations

9Citations
Citations of this article
14Readers
Mendeley users who have this article in their library.
Get full text

Abstract

In dynamic typing languages such as JavaScript, object types can be mutated easily such as by adding a field to an object. However, compiler optimizations rely on a fixed set of types, unintentional type mutations can invalidate the speculative code generated by the type-feedback JIT and deteriorate the quality of compiler optimizations. Since type mutations are invisible, finding and understanding the performance issues relevant to type mutations can be an overwhelming task to programmers. We develop a tool JSweeter to detect performance bugs incurred by type mutations based on the type evolution graphs extracted from program execution. We apply JSweeter to the Octane benchmark suite and identify 46 performance issues, where 19 issues are successfully fixed with the refactoring hints generated by JSweeter and the average performance gain is 5.3% (up to 23 %). The result is persuasive because those issues are hidden in such well developed benchmark programs.

Cite

CITATION STYLE

APA

Xiao, X., Han, S., Zhang, C., & Zhang, D. (2015). Uncovering JavaScript performance code smells relevant to type mutations. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 9458, pp. 335–355). Springer Verlag. https://doi.org/10.1007/978-3-319-26529-2_18

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free