Publications

Detailed Information

코드 공유를 통한 V8 자바스크립트 엔진 메모리 절감

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

서보준

Advisor
이재진
Major
공과대학 전기·컴퓨터공학부
Issue Date
2016-08
Publisher
서울대학교 대학원
Keywords
자바스크립트V8코드 공유공유 메모리
Description
학위논문 (석사)-- 서울대학교 대학원 : 전기·컴퓨터공학부, 2016. 8. 이재진.
Abstract
최근 자바스크립트 엔진은 인터프리팅 방식이 아닌 JIT(Just-In-Time) 컴파일 방식으로 기계어 코드를 생성하여 프로그램을 실행한다. 이 때 생성되는 기계어 코드는 하나의 엔진(프로세스)에서만 사용이 되고 더 이상 필요 없어지는 경우 GC(Garbage Collector)에 의해 지워진다. 여러 개의 엔진(프로세스)이 실행되는 경우, 예를 들어 Chrome 브라우저에서 여러 개의 탭을 생성하여 여러 개의 V8 자바스크립트 엔진이 실행되는 경우, 같은 자바스크립트 코드가 있다면, 같은 기계어 코드가 각각의 프로세스마다 생성되며, 각자의 메모리 공간에 할당된다. 동일한 내용을 중복하여 저장하였기 때문에 이는 메모리 낭비라고 할 수 있다. i
본 연구에서는 이러한 동일한 기계어 코드를 여러 V8 자바스크립트 엔진(프로세스)에서 공유함으로써 메모리 사용량을 줄이는 것을 제안한다. 기계어를 공유하기 위해서 V8 런타임에서 컴파일된 코드를 저장하는 방식을 변경하였고, JIT 컴파일러도 수정하였다. 공유 메모리 영역에 바이너리를 할당하고, GC를 적용하여 해제하는 방식을 구현하였다.
Firebase, Kendo 등의 자바스크립트 라이브러리를 사용하는 어플리케이션으로 실험하였고, 4개의 어플리케이션이 동시에 실행되는 상황에서 코드의 메모리 사용량을 기존 대비 약 29.6% 줄였다.
Language
Korean
URI
https://hdl.handle.net/10371/123212
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