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.accessioned | 2018-05-28T16:20:31Z | - |
dc.date.available | 2018-05-28T16:20:31Z | - |
dc.date.issued | 2018-02 | - |
dc.identifier.other | 000000149705 | - |
dc.identifier.uri | https://hdl.handle.net/10371/140666 | - |
dc.description | 학위논문 (박사)-- 서울대학교 대학원 : 공과대학 전기·컴퓨터공학부, 2018. 2. 문수묵. | - |
dc.description.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. | - |
dc.description.tableofcontents | Chapter 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.format | application/pdf | - |
dc.format.extent | 1427141 bytes | - |
dc.format.medium | application/pdf | - |
dc.language.iso | en | - |
dc.publisher | 서울대학교 대학원 | - |
dc.subject | 자바스크립트 | - |
dc.subject | 파싱 | - |
dc.subject | 적시 컴파일 | - |
dc.subject | 선행 컴파일 | - |
dc.subject | 컴파일 최적화 | - |
dc.subject | 자바스크립트 엔진 | - |
dc.subject.ddc | 621.3 | - |
dc.title | A Study on Optimization of Compilation Process for JavaScript Engine | - |
dc.title.alternative | 자바스크립트 엔진의 컴파일 과정 최적화에 관한 연구 | - |
dc.type | Thesis | - |
dc.description.degree | Doctor | - |
dc.contributor.affiliation | 공과대학 전기·컴퓨터공학부 | - |
dc.date.awarded | 2018-02 | - |
- Appears in Collections:
- Files in This Item:
Item View & Download Count
Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.