Title :
Poster: Automatically Fixing Real-World JavaScript Performance Bugs
Author :
Selakovic, Marija ; Pradel, Michael
Author_Institution :
Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany
Abstract :
Programs often suffer from poor performance that can be fixed by relatively simple changes. Currently, developers either manually identify and fix such performance problems, or they rely on compilers to optimize their code. Unfortunately, manually fixing performance bugs is non-trivial, and compilers are limited to a predefined set of optimizations. This paper presents an approach for automatically finding and fixing performance bugs in JavaScript programs. To focus our work on relevant problems, we study 37 real-world performance bug fixes from eleven popular JavaScript projects and identify several recurring fix patterns. Based on the results of the study, we present a static analysis that identifies occurrences of common fix patterns and a fix generation technique that proposes to transform a given program into a more efficient program. Applying the fix generation technique to three libraries with known performance bugs yields fixes that are equal or equivalent to those proposed by the developers, and that lead to speedups between 10% and 25%.
Keywords :
Java; program debugging; program diagnostics; JavaScript programs; common fix patterns; compilers; fix generation technique; real-world performance bugs; static analysis; Computer bugs; Libraries; Maintenance engineering; Optimization; Reactive power; Semantics; Transforms;
Conference_Titel :
Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
Conference_Location :
Florence
DOI :
10.1109/ICSE.2015.260