Abstract
JavaScript has seen meteoric growth in popularity as it has in- creasingly become the language of choice for developers, both for front-end web development and server code development through various JavaScript frameworks and Node.js. Part of the reason for its wide use is that it is a prototype based language with dynamic types, making it easy to learn and program in. This flexibility and ease of programming comes at the cost of performance. There are two sources of significant slowdown. First, since the number and type of properties of prototypes is dynamic, accessing a property involves a slow dictionary lookup, as opposed to it being present at a fixed offset from the base address. Second, the dynamism in type of values necessitates wrapping and unwrapping of values into objects with a variety of checks including for type of the value. To mitigate these performance problems, this paper proposes JSCore, a core specialized for JavaScript execution, that vastly reduces the performance degradation due to the above two causes. It uses a hardware lookup table to accelerate property access, and extends the data path to store data types with the data, nearly eliminating the second source of slowdown. Combining the two, JSCore accelerates real world JavaScript applications by 23%.
- [n. d.]. Chromium. ([n. d.]). https://www.chromium.org/Home.Google Scholar
- [n. d.]. Google V8 JavaScript Engine - https://developers.google.com/v8/. ([n. d.]).Google Scholar
- [n. d.]. Mozilla JavaScript Engine - https://wiki.mozilla.org/IonMonkey. ([n. d.]).Google Scholar
- [n. d.]. Octane Benchmark Suite. ([n. d.]). https://developers.google.com/octane/.Google Scholar
- [n. d.]. Sunspider Benchmark Suite. ([n. d.]). https://www.webkit.org/perf/sunspider/sunspider.html.Google Scholar
- Alan Bawden, Richard Greenblatt, Jack Holloway, Thomas Knight, and David Moon. 1977. LISP Machine Progress Report. Technical Report. MASSACHUSETTS INST OF TECH CAMBRIDGE ARTIFICIAL INTELLIGENCE LAB.Google Scholar
- Trevor E. Carlson, Wim Heirman, and Lieven Eeckhout. 2011. Sniper: Exploring the Level of Abstraction for Scalable and Accurate Parallel Multi-Core Simulations. In International Conference for High Performance Computing, Networking, Storage and Analysis (SC). Google Scholar
Digital Library
- Gaurav Chadha, Scott Mahlke, and Satish Narayanasamy. 2014. EFetch: optimizing instruction fetch for event-driven web applications. In Proceedings of the 23rd international conference on Parallel architectures and compilation. ACM, 75-86. Google Scholar
Digital Library
- Gaurav Chadha, Scott Mahlke, and Satish Narayanasamy. 2015. Accelerating asynchronous programs through event sneak peek. In Proceedings of the 42nd Annual International Symposium on Computer Architecture. ACM, 642-654. Google Scholar
Digital Library
- Jiho Choi, Thomas Shull, Maria J Garzaran, and Josep Torrellas. 2017. ShortCut: Architectural Support for Fast Object Access in Scripting Languages. In Proceedings of the 44th Annual International Symposium on Computer Architecture. ACM, 494-506. Google Scholar
Digital Library
- Hadi Esmaeilzadeh, Emily Blem, Renee St Amant, Karthikeyan Sankaralingam, and Doug Burger. 2011. Dark silicon and the end of multicore scaling. In Computer Architecture (ISCA), 2011 38th Annual International Symposium on. IEEE, 365-376. Google Scholar
Digital Library
- Dibakar Gope, David J Schlais, and MikkoHLipasti. 2017. Architectural Support for Server-Side PHP Processing. In Proceedings of the 44th Annual International Symposium on Computer Architecture. ACM, 507- 520. Google Scholar
Digital Library
- JK Iliffe. 1969. Elements of BLM. Comput. J. 12, 3 (1969), 251-258.Google Scholar
Cross Ref
- R Johnson. 1981. The Intel iAPX-432: an architecture for Ada. In High Performance Computer Architecture (HPCA), 1981 IEEE International Symposium on. IEEE.Google Scholar
- Sheng Li, Jung Ho Ahn, Richard D. Strong, Jay B. Brockman, Dean M. Tullsen, and Norman P. Jouppi. 2009. McPAT: an integrated power, area, and timing modeling framework for multicore and manycore architectures. In Proceedings of the 42nd Annual IEEE/ACMInternational Symposium on Microarchitecture (MICRO 42). ACM, New York, NY, USA, 469-480. Google Scholar
Digital Library
- Harlan McGhan and Mike O'Connor. 1998. Picojava: A direct execution engine for java bytecode. Computer 31, 10 (1998), 22-30. Google Scholar
Digital Library
- Chris Porthouse. 2005. High performance Java on embedded devices-Jazelle DBX technology: ARM acceleration technology for the Java Platform. Jazelle DBX WhitePaper (2005).Google Scholar
- Paruj Ratanaworabhan, Benjamin Livshits, and Benjamin G Zorn. 2010. JSMeter: Comparing the behavior of JavaScript benchmarks with real web applications. In Proceedings of the 2010 USENIX conference on Web application development. USENIX Association, 3-3. Google Scholar
Digital Library
- Yuhao Zhu and Vijay Janapa Reddi. 2014. WebCore: architectural support for mobileweb browsing. In Proceeding of the 41st annual international symposium on Computer architecuture. IEEE Press, 541- 552. Google Scholar
Digital Library
Index Terms
JSCore: architectural support for accelerating JavaScript execution (short WIP paper)
Recommendations
JSCore: architectural support for accelerating JavaScript execution (short WIP paper)
LCTES 2018: Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded SystemsJavaScript has seen meteoric growth in popularity as it has in- creasingly become the language of choice for developers, both for front-end web development and server code development through various JavaScript frameworks and Node.js. Part of the reason ...







Comments