Browse

A Study on Optimization of Compilation Process for JavaScript Engine
자바스크립트 엔진의 컴파일 과정 최적화에 관한 연구

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
박혁우
Advisor
문수묵
Major
공과대학 전기·컴퓨터공학부
Issue Date
2018-02
Publisher
서울대학교 대학원
Keywords
자바스크립트파싱적시 컴파일선행 컴파일컴파일 최적화자바스크립트 엔진
Description
학위논문 (박사)-- 서울대학교 대학원 : 공과대학 전기·컴퓨터공학부, 2018. 2. 문수묵.
Abstract
JavaScript is a standard dynamic language for web, along with HTML and CSS. Since the appearance of new standards and technologies such as HTML5, ECMAScript6, and WebGL, JavaScript has been increasingly undertaking complex computations, and even running in the server environment. Therefore, the JavaScript performance becomes a critical issue.
For high performant JavaScript, modern JavaScript engines have adopted a multi-tier execution architecture based on the adaptive compilation, which compiles the source code differently based upon the hotness of each function. However, JavaScript engines still suffer from the substantial compilation overhead. This study proposes two optimization techniques for JavaScript compilation process to reduce the compilation overhead, which are concurrent parsing and ahead-of-time compilation (AOTC).
Concurrent parsing approach focuses on the substantial parsing overhead during the web loading time. To reduce the parsing overhead, concurrent parsing approach performs the parsing process in advance on separate parsing threads, while the main thread directly executes the pre-parsed functions skipping the parsing process. When performed on multi-cores, this can hide the parsing overhead from the main execution thread, thus improving the overall web loading performance. Concurrent parsing technique implemented on a commonly used web browser shows a tangible improvement of the whole web loading performance for various real web apps, which is up to 32% and 18% on average.
AOTC approach is proposed to reduce the whole compilation overhead. From an observation of compute-intensive JavaScript codes, the total compilation overhead accounts for almost half of the entire JavaScript execution time. This result is due to the heavy workload of the parsing and optimizing JITC. To reduce the whole compilation overhead, AOTC technique is employed for JavaScript which stores and reuses the compiled code generated in the previous run. A new AOTC method is discussed which reuses the bytecode and optimized code together for state-of-the-art JavaScript engines. Proposed AOTC method implemented on a commonly used JavaScript engine shows a substantial performance improvement for industry-standard JavaScript benchmark, which is up to 6.36 times and 1.99 times on average.
Two proposed optimizations for JavaScript compilation process efficiently improve the performance of web loading and JavaScript execution with promising results.
Language
English
URI
https://hdl.handle.net/10371/140666
Files in This Item:
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Dept. of Electrical and Computer Engineering (전기·정보공학부)Theses (Ph.D. / Sc.D._전기·정보공학부)
  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Browse