TU Darmstadt / ULB / TUbiblio

JITProf: pinpointing JIT-unfriendly JavaScript code

Gong, Liang ; Pradel, Michael ; Sen, Koushik (2015)
JITProf: pinpointing JIT-unfriendly JavaScript code.
Bergamo, Italy
doi: 10.1145/2786805.2786831
Konferenzveröffentlichung, Bibliographie

Kurzbeschreibung (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.

Typ des Eintrags: Konferenzveröffentlichung
Erschienen: 2015
Autor(en): Gong, Liang ; Pradel, Michael ; Sen, Koushik
Art des Eintrags: Bibliographie
Titel: JITProf: pinpointing JIT-unfriendly JavaScript code
Sprache: Deutsch
Publikationsjahr: August 2015
Verlag: ACM
Buchtitel: Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering
Reihe: ESEC/FSE 2015
Veranstaltungsort: Bergamo, Italy
DOI: 10.1145/2786805.2786831
Kurzbeschreibung (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.

Freie Schlagworte: JITProf, Jalangi, JavaScript, dynamic analysis, just-in-time compilation, profiler
ID-Nummer: TUD-CS-2015-12090
Fachbereich(e)/-gebiet(e): Profilbereiche
Profilbereiche > Cybersicherheit (CYSEC)
Hinterlegungsdatum: 17 Aug 2017 15:06
Letzte Änderung: 12 Jan 2019 21:20
PPN:
Export:
Suche nach Titel in: TUfind oder in Google
Frage zum Eintrag Frage zum Eintrag

Optionen (nur für Redakteure)
Redaktionelle Details anzeigen Redaktionelle Details anzeigen