http://chineseinput.net/에서 pinyin(병음)방식으로 중국어를 변환할 수 있습니다.
변환된 중국어를 복사하여 사용하시면 됩니다.
자바스크립트 엔진의 단계적 On-Stack-Replacement 기법 분석
박혁우(HyukWoo Park),문수묵(Soo-Mook Moon),구본태(BonTae Koo),김진규(JinKyu Kim) 한국정보과학회 2014 정보과학회 컴퓨팅의 실제 논문지 Vol.20 No.6
자바스크립트의 성능이 주요 관심사가 되면서 자바스크립트 엔진은 성능 향상을 위해 적시 컴파일 방식을 사용해왔다. 최근 들어 자바스크립트 엔진은 타입 추론 최적화를 하는 적시 컴파일러를 추가로 도입하여 단계적으로 OSR 기법을 적용하여 최대의 성능 효율을 얻고자 한다. 본 논문에서는 WebKit 브라우저의 자바스크립트 엔진에 적용된 단계적 OSR 기법을 분석하고 실험을 통해 성능 효과를 알아보고자 한다. 실험 결과 자바스크립트 벤치 마크에서는 단계적 OSR을 통해 평균 5.6배의 높은 성능 향상을 얻었지만, 웹 페이지 로딩에서는 단계적 OSR 기법의 한계 또한 확인할 수 있었다. As the performance of the JavaScript becomes main issue, the JavaScript engine used Just-in-Time Compiler(JITC) method which generates machine code in runtime to enhance the performance. Recently JavaScript engines adopt the optimize JITC that implements type inference optimization to obtain high performance. In this paper we analyze the phased On-Stack-Replacement(OSR) implemented in the JavaScript engine of the WebKit browser. And also we evaluate the performance efficiency by some experiments. In the result of the experiments, the phased OSR achieved 5.6x better performance for the JavaScript benchmarks. But in web page loading, we also found the limits of the phased OSR.
TraceMonkey 자바스크립트 엔진의 인터프리터에서 루프 수행 최적화 방안
박혁우(HyukWoo Park),문수묵(Soo-Mook Moon) 한국정보과학회 2011 한국정보과학회 학술발표논문집 Vol.38 No.1B
자바스크립트는 현재 웹 사이트에서 클라이언트 사이드 프로그래밍의 언어로 널리 쓰이고 있다. 최근 들어 RIA(Rich Internet Application)의 등장과 함께 모바일 환경에서의 인터넷 접속이 증가하면서 자바스크립트 언어의 수행 성능이 중요한 이슈가 되고 있다. 본 논문에서는 자바스크립트 엔진 중 하나인 TraceMonkey에서 인터프리터로 루프(Loop) 수행 시 타입 체크 오버헤드 제거와 슈퍼바이트 코드 최적화를 적용하여 성능 향상을 꾀하고 이를 평가하고자 한다.
V8 CrankShaft 자바스크립트 엔진에 적용된 Adaptive Compilation의 성능 분석
박혁우(Park HyukWoo),유영호(Yoo Young-ho),문수묵(문수묵) 한국정보과학회 2011 한국정보과학회 학술발표논문집 Vol.38 No.2A
V8 자바스크립트 엔진은 Adaptive-Compilation 방식을 적용하여 자주 수행되는 핫스팟에 대해 최적화된 기계어 코드를 생성하여 추가적인 성능 향상을 꾀하고 있다. 본 논문에서는 V8 CrankShaft 자바스크립트 엔진에 적용된 Adaptive Compilation의 성능을 분석하였는데 그 결과 CrankShaft 방식은 복잡한 프로그램의 수행에 효과적이며 수행 환경에 따라 성능의 편차가 존재함을 확인할 수 있었다.
차명수(Myungsu Cha),박혁우(Hyukwoo Park),문수묵(Soo-Mook Moon) 한국정보과학회 2017 정보과학회 컴퓨팅의 실제 논문지 Vol.23 No.8
웹 어플리케이션은 로딩 시간을 빠르게 하는 것이 중요하다. 파싱은 로딩 과정 중 하나로서 로딩을 길어지게 하는 원인이 되고 있다. 이러한 이유로 파싱 쓰레드를 만들어 파싱을 병렬화 시킨 동시 파싱 기법이 제안되었다[3]. 그러나 동시 파싱은 파싱 순서에 대한 고려가 없다는 한계가 있었다. 본 논문에서는 동시 파싱을 사용할 때 어떤 함수를 먼저 파싱해야 하는가에 대한 휴리스틱을 제안한다. 파싱 우선순위를 정하기 위해 실제 웹 어플리케이션의 자바스크립트 함수들을 분석하여 함수를 세 가지 기준으로 분류하였고, 각 분류의 호출 확률(call probability)을 구하였다. 조사한 호출 확률을 이용하여 높은 호출확률을 갖는 함수들에 높은 파싱 우선 순위를 주었고, 반대로 낮은 호출 확률의 함수들은 낮은 우선 순위를 주었다. 정의한 우선 순위를 토대로 휴리스틱을 제안했고 이를 검증하기 위해 실제 웹 어플리케이션에서 로딩 시간을 측정하여 최대 3.8%, 평균 2.6%의 로딩 시간을 단축하였다. It is important to speed up the loading time of web applications. Parsing is a loading process that contributes to an increased loading time. To address this issue, the optimization called Concurrent Parsing has been proposed which handles the parsing process in parallel by using additional threads. However, Concurrent Parsing has a limitation that it does not consider the priority order of parsing. In this paper, we propose heuristics that exploit priorities of parsing to improve the Concurrent Parsing. For parsing priority, we empirically investigate the sequence of function calls, classify functions into 3 categories, and extract function call probabilities. If a function has high call probability, we give a high priority and if a function has low probability, we give a low priority. We evaluate this priority heuristics on real web applications and get the 2.6% decrease of loading time on average.