Publications

Detailed Information

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

DC Field Value Language
dc.contributor.advisor문수묵-
dc.contributor.author박혁우-
dc.date.accessioned2018-05-28T16:20:31Z-
dc.date.available2018-05-28T16:20:31Z-
dc.date.issued2018-02-
dc.identifier.other000000149705-
dc.identifier.urihttps://hdl.handle.net/10371/140666-
dc.description학위논문 (박사)-- 서울대학교 대학원 : 공과대학 전기·컴퓨터공학부, 2018. 2. 문수묵.-
dc.description.abstractJavaScript 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.
-
dc.description.tableofcontentsChapter 1. Introduction 1
Chapter 2. Background 6
2.1 Web App 6
2.2 JavaScript Language 7
2.3 JavaScript Engine 8
Chapter 3. Concurrent Parsing 10
3.1 JavaScript Parsing 10
3.1.1 Parsing Process 10
3.1.2 Parsing Overhead 14
3.2 Concurrent Parsing Approach 15
3.2.1 Idea of Concurrent Parsing 15
3.2.2 Concurrent Parsing Architecture 16
3.2.3 Parsing Target Selection 18
3.2.3.1 Profile-based Concurrent Parsing 18
3.2.3.2 Speculation-based Concurrent Parsing 22
3.3 Implementation on WebKit 24
3.3.1 Separation of Parsing Process 24
3.3.2 Shared Data Structure 26
3.3.3 Source Code Hashing 27
3.4 Evaluation 28
3.4.1 Experimental Setup 28
3.4.2 Performance Analysis 29
3.4.3 Scalability 31
3.4.4 Overhead of PCP 32
3.4.5 Length of Parsing Queue 34
3.4.6 Extra Experiments 34
3.4.6.1 JavaScript Benchmark Performance 34
3.4.6.2 Web Page Performance 35
Chapter 4. Ahead-of-Time Compilation 37
4.1 Dybnamic Compilation 37
4.1.1 Optimizing JITC 37
4.1.2 Compilation Overhead 40
4.2 AOTC Approach 41
4.2.1 Idea of AOTC 41
4.2.2 Initial AOTC 42
4.2.2.1 Initial AOTC Framework 44
4.2.2.2 Reusing the Bytecode 45
4.2.2.3 Reusing the Baseline Code 45
4.2.2.4 Selective Reusing 47
4.2.2.5 Experimental Results 47
4.3 Novel AOTC 50
4.3.1 AOTC Framework 50
4.3.2 Reusing the Optimized Code 52
4.3.2.1 Optimization Validation 52
4.3.2.2 Address Relocation 52
4.3.2.3 Disabled Optimizations 54
4.3.2.4 Selection Heuristic 55
4.4 Implementation on WebKit 56
4.4.1 Address Relocation of String Object 56
4.4.2 Data Compression 57
4.4.3 Source Code Hashing 57
4.5 Evaluation 58
4.5.1 Experimental Setup 58
4.5.2 Performance Analysis 58
4.5.3 Overhead of AOTC 61
4.5.4 Web App Loading Performance 62
Chapter 5. Related Work 64
Chapter 6. Conclusion 67
Bibliography 68
Abstract in Korean 74
-
dc.formatapplication/pdf-
dc.format.extent1427141 bytes-
dc.format.mediumapplication/pdf-
dc.language.isoen-
dc.publisher서울대학교 대학원-
dc.subject자바스크립트-
dc.subject파싱-
dc.subject적시 컴파일-
dc.subject선행 컴파일-
dc.subject컴파일 최적화-
dc.subject자바스크립트 엔진-
dc.subject.ddc621.3-
dc.titleA Study on Optimization of Compilation Process for JavaScript Engine-
dc.title.alternative자바스크립트 엔진의 컴파일 과정 최적화에 관한 연구-
dc.typeThesis-
dc.description.degreeDoctor-
dc.contributor.affiliation공과대학 전기·컴퓨터공학부-
dc.date.awarded2018-02-
Appears in Collections:
Files in This Item:

Altmetrics

Item View & Download Count

  • mendeley

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

Share