TraceMonkey 자바스크립트 엔진에서 재귀함수의 적시 컴파일

최근 데스크 탑 환경에서의 RIA(rich internet application)의 출현과 내장형 환경에서의 풀 브라우징이 등장함에 따라 웹 브라우저 내에서 자바스크립트 엔진의 성능이 중요하게 되었다. 널리 사용되고 있는 웹 브라우저인 Firefox에 내장된 TraceMonkey 엔진은 성능 향상을 위해 수행 중에 자바스크립트 코드를 기계어 코드로 번역하여 실행하는 적시(Just-in-Time) 컴파일러를 채택하고 있다. 특히 TraceMonkey는 많이 수행되는 경로에 대해서만 컴파일을 하는 경로 추적(trace)방식을 사용하고 있는 데, 현재 재귀함수(recursive function)를 제대로 컴파일하지 못하고 있다. 본 논문에서는 TraceMonkey가 재귀함수를 컴파일하지 못하는 문제를 파악하고 이를 좀 더 극복하기 위한 방안을 제시하고 그 프로토타입을 구현하여 실험하였다. 그 결과를 바탕으로 재귀함수의 경로 추적 방식 컴파일의 근본적인 문제점을 분석하고 TraceMonkey에서 효율적인 재귀 함수 컴파일을 위해 필요한 방안을 제시한다.