Performance Evaluation of JavaScript Engines Using SunSpider Benchmarks

SunSpider 벤치마크를 통한 자바스크립트 엔진의 성능 평가

  • 정원기 (서울대학교 전기컴퓨터공학부) ;
  • 이성원 (서울대학교 전기컴퓨터공학부) ;
  • 오형석 (서울대학교 전기컴퓨터공학부) ;
  • 오진석 (서울대학교 전기컴퓨터공학부) ;
  • 문수묵 (서울대학교 전기컴퓨터공학부)
  • Received : 2009.12.24
  • Accepted : 2010.03.02
  • Published : 2010.06.15

Abstract

The recent deployment of RIA (Rich Internet Application) is often involved with the complex JavaScript code, which leads to the announcement of high performance JavaScript engines for its efficient execution. And the Sunspider benchmark is being widely used for the performance evaluation of these JavaScript engines. In this paper, we compare the execution methods of three high-performance JavaScript engines, Mozilla TraceMonkey, Google V8, and Apple SquirrelFish Extreme, and measure their performances using the SunSpider benchmark. We also evaluate the pros and cons of each engine, based on its execution method and the code characteristics of the SunSpider benchmarks.

최근 RIA(Rich Internet Application)의 등장으로 인해 자바스크립트 코드의 복잡도가 증가함에 따라 이를 위한 고성능 자바스크립트 엔진들이 경쟁적으로 발표되고 있다. 또한 이들 엔진의 성능 측정을 위한 도구로서 SunSpider 벤치마크가 널리 사용되고 있다. 본 논문에서는 대표적인 고성능 자바스크립트 엔진인 Mozilla의 Trace-Monkey, Google의 V8, 그리고 Apple의 SquirrelFish Extreme에 대해 자바스크립트 코드 수행 방식을 비교하고 SunSpider 벤치마크를 이용해 각 엔진의 성능을 측정한다. 또한 각 엔진들의 수행 방식과 SunSpider 각각의 코드 특성을 토대로 하여 성능 결과를 분석하여 각 엔진의 장단점을 평가한다.

Keywords

References

  1. Rich Internet Applications, "http://www.adobe.com/platform/whitepapers/idc_ impact_of_rias.pdf"
  2. Mozilla Wiki - TraceMonkey, "http://wiki.mozilla.org/Javascript:TraceMonkey"
  3. V8 Javascript Engine, "http://code.google.com/apis/v8"
  4. The Webkit Open Source Project "http://webkit.org"
  5. Dromaeo : Javascript Performance Testing, "http://dromaeo.com"
  6. SunSpider JavaScript Benchmark, "http://www2.webkit.org/perf/sunspider-0.9/ sunspider.html"
  7. A. Gal, C. W. Probst, M. Franz "HotpathVM: An Effective JIT Compiler for Resource-constrained Devices," Proceedings of the 2nd International Conference on Virtual Execution Environments, pp.144-153, 2006.
  8. A. Gal, B. Eich, M. Shaver, D. Anderson, D. Mandelin, M. R. Haghighat, B. Kaplan, G. Hoare, B. Zbarsky, J. Orendorff, J. Ruderman, E. Smith, R. Reitmaier, M. Bebenita, M. Chang, M. Frantz "Trace-based Just-In-Time Type Specialization for Dynamic Languages," Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, pp.465-478, 2009.
  9. M. Berndl, B. Vitale, M. Zaleski, A. D. Brown "Context Threading: A flexible and efficiend dispatch technique for virtual machine interpreters," Proceedings of the International Symposium on Code Generation and Optimization, pp.15-26, 2005.