TU Darmstadt / ULB / TUbiblio

JITProf: pinpointing JIT-unfriendly JavaScript code

Gong, Liang and Pradel, Michael and Sen, Koushik :
JITProf: pinpointing JIT-unfriendly JavaScript code.
In: ESEC/FSE 2015 . ACM
[Conference or Workshop Item] , (2015)

Abstract

Most modern JavaScript engines use just-in-time (JIT) compilation to translate parts of JavaScript code into efficient machine code at runtime. Despite the overall success of JIT compilers, programmers may still write code that uses the dynamic features of JavaScript in a way that prohibits profitable optimizations. Unfortunately, there currently is no way to measure how prevalent such JIT-unfriendly code is and to help developers detect such code locations. This paper presents JITProf, a profiling framework to dynamically identify code locations that prohibit profitable JIT optimizations. The key idea is to associate meta-information with JavaScript objects and code locations, to update this information whenever particular runtime events occur, and to use the meta-information to identify JIT-unfriendly operations. We use JITProf to analyze widely used JavaScript web applications and show that JIT-unfriendly code is prevalent in practice. Furthermore, we show how to use the approach as a profiling technique that finds optimization opportunities in a program. Applying the profiler to popular benchmark programs shows that refactoring these programs to avoid performance problems identified by JITProf leads to statistically significant performance improvements of up to 26.3% in 15 benchmarks.

Item Type: Conference or Workshop Item
Erschienen: 2015
Creators: Gong, Liang and Pradel, Michael and Sen, Koushik
Title: JITProf: pinpointing JIT-unfriendly JavaScript code
Language: German
Abstract:

Most modern JavaScript engines use just-in-time (JIT) compilation to translate parts of JavaScript code into efficient machine code at runtime. Despite the overall success of JIT compilers, programmers may still write code that uses the dynamic features of JavaScript in a way that prohibits profitable optimizations. Unfortunately, there currently is no way to measure how prevalent such JIT-unfriendly code is and to help developers detect such code locations. This paper presents JITProf, a profiling framework to dynamically identify code locations that prohibit profitable JIT optimizations. The key idea is to associate meta-information with JavaScript objects and code locations, to update this information whenever particular runtime events occur, and to use the meta-information to identify JIT-unfriendly operations. We use JITProf to analyze widely used JavaScript web applications and show that JIT-unfriendly code is prevalent in practice. Furthermore, we show how to use the approach as a profiling technique that finds optimization opportunities in a program. Applying the profiler to popular benchmark programs shows that refactoring these programs to avoid performance problems identified by JITProf leads to statistically significant performance improvements of up to 26.3% in 15 benchmarks.

Title of Book: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering
Series Name: ESEC/FSE 2015
Publisher: ACM
Uncontrolled Keywords: JITProf, Jalangi, JavaScript, dynamic analysis, just-in-time compilation, profiler
Divisions: Profile Areas
Profile Areas > Cybersecurity (CYSEC)
Event Location: Bergamo, Italy
Date Deposited: 17 Aug 2017 15:06
DOI: 10.1145/2786805.2786831
Identification Number: TUD-CS-2015-12090
Export:

Optionen (nur für Redakteure)

View Item View Item