Publications

Detailed Information

자바스크립트 엔진에서의 최적화된 기계어 코드 재활용 : Recycling the Optimized Machine Codes Generated by JavaScript Engine

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

김성국

Advisor
문수묵
Major
공과대학 전기·정보공학부
Issue Date
2017-08
Publisher
서울대학교 대학원
Keywords
JIT 컴파일러컴파일 오버헤드포인터기계어 코드자바스크립트 엔진
Description
학위논문 (석사)-- 서울대학교 대학원 공과대학 전기·정보공학부, 2017. 8. 문수묵.
Abstract
자바스크립트의 역할이 계속해서 증대되고 있으며, 자바스크립트 엔진의 성능이 중요한 이슈가 되고 있다. 본 논문은 자바스크립트 엔진의 성능을 향상하기 위한 방법으로 다단계(multi-tiered) JIT 컴파일 엔진에서 최적화 JIT 컴파일러가 생성하는 기계어 코드를 재활용하는 방식을 제안한다. 이 방식에서는 최적화 JIT 컴파일러가 생성하는 기계어 코드를 파일에 저장하였다가 다음 프로그램 수행에서 이를 재사용한다. 그리하여 엔진에서 컴파일 오버헤드를 제거하고 시작부터 양질의 코드를 사용하게 만든다.
기계어 코드를 재사용하기 위해서는 코드 내의 포인터들을 현재 수행에 맞게 패치 해주어야 하는데, 이를 위하여 기계어 코드와 함께 코드 내의 포인터 위치 및 포인터가 가리키는 객체의 정체를 같이 저장하는 테이블을 생성, 저장한다. 최적화 JIT 컴파일러에서는 베이스라인 JIT 에서와는 달리 완성된 테이블을 만들기 위해 최적화 과정 중에서 파생적으로 생성되는 포인터와 프로파일에 의해 고정 생성되는 포인터들까지 찾아서 처리해야 한다. 전자는 최적화 과정을 같이 따라가면서, 후자는 컴파일러가 포인터를 고정 생성하지 못하도록 바꾸어 처리한다. 이를 실제 자바스크립트 엔진 중의 하나인 JavaScriptCore 엔진에서 적용한 결과, 사용자가 선택적으로 이득이 되는 기계어 코드들만 재사용 했을 시 최대 29%, 평균 11%의 성능 향상이 있었다.
Language
Korean
URI
https://hdl.handle.net/10371/137421
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

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

Share