Browse

자바스크립트 엔진을 위한 선택적 선행 컴파일러의 설계 및 구현
A Design and Implementation of Selective Ahead-of-Time Compilation for JavaScript Engines

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors
박혁우
Advisor
문수묵
Major
공과대학 전기·컴퓨터공학부
Issue Date
2012-08
Publisher
서울대학교 대학원
Keywords
자바스크립트자바스크립트 엔진적시 컴파일선행 컴파일선택적 선행 컴파일웹 최적화
Description
학위논문 (석사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2012. 8. 문수묵.
Abstract
자바스크립트 언어는 스크립트 언어 중 하나로 표현이 풍부하며 비전문가들도 쉽게 사용할 수 있어서 웹 환경에서 클라이언트 사이드 프로그래밍 언어로 널리 쓰이고 있다. 특히 웹앱(Web App)과 RIA(Rich Internet Application)의 등장으로 인해 웹 환경에서 자바스크립트 비중이 크게 증가하고 있다.
최근 들어 스마트폰, 태블릿 PC의 대중화로 모바일 기기에서 웹 서비스의 사용이 크게 늘고 있지만 자바스크립트 언어의 동적인 특성으로 인해 제한된 모바일 환경의 하드웨어에서는 자바스크립트 수행이 병목으로 작용하고 있는 것이 사실이다. 이 때문에 자바스크립트 엔진의 수행 성능이 중요한 이슈가 되고 있다.
현재 자바스크립트 엔진은 성능 향상을 위해 실행 중에 자바스크립트 코드로부터 기계어 코드를 생성하여 이를 수행하는 적시 컴파일(JITC, Just-in-Time Compiler) 방식을 채택하고 있다. 그러나 적시 컴파일 방식은 컴파일 오버헤드가 수행 시간에 그대로 포함되며 실제 웹 환경에서는 그 비중이 상당히 크다는 단점이 존재한다.
본 논문에서는 자바스크립트 엔진의 성능 향상을 위하여 선행 컴파일(AOTC, Ahead-of-Time Compiler) 방식을 도입하였다. 선행 컴파일 방식은 한번 생성된 기계어 코드를 저장한 뒤, 다음 수행에서 재사용하는 방식이다. 이 방식은 적시 컴파일 방식의 단점인 컴파일 오버헤드를 줄이는 데 효과가 있다. 실제로 선행 컴파일 방식을 적용한 결과, 성능 향상이 있었지만 보조 기억 장치의 저장 공간을 많이 필요로 하기 때문에 그대로 적용하기엔 무리가 있었다.
선행 컴파일 방식의 한계를 보완하기 위해 여기선 새로운 방식인 선택적 선행 컴파일(Selective-AOTC) 방식을 제안하였다. 선택적 선행 컴파일 방식은 선행 컴파일 방식을 선택적으로 적용하여, 적은 저장 공간을 사용하면서 동시에 최대한의 성능 이득을 얻는 것을 목표로 한다. 선택적 선행 컴파일러의 설계를 위해 컴파일 오버헤드와 생성된 기계어 코드의 크기를 기준으로 하는 선택 휴리스틱을 정하였다. 이를 토대로 구현한 결과 V8 벤치 마크에서 10.8%의 성능 향상이 있었고, 기존 선행 컴파일 방식과 비교할 때 65.1%의 저장 공간을 절약할 수 있었다.
Language
Korean
URI
https://hdl.handle.net/10371/122891
Files in This Item:
Appears in Collections:
College of Engineering/Engineering Practice School (공과대학/대학원)Dept. of Electrical and Computer Engineering (전기·정보공학부)Theses (Master's Degree_전기·정보공학부)
  • mendeley

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

Browse