skip to main content
article

JSCore: architectural support for accelerating JavaScript execution (short WIP paper)

Published:19 June 2018Publication History
Skip Abstract Section

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%.

References

  1. [n. d.]. Chromium. ([n. d.]). https://www.chromium.org/Home.Google ScholarGoogle Scholar
  2. [n. d.]. Google V8 JavaScript Engine - https://developers.google.com/v8/. ([n. d.]).Google ScholarGoogle Scholar
  3. [n. d.]. Mozilla JavaScript Engine - https://wiki.mozilla.org/IonMonkey. ([n. d.]).Google ScholarGoogle Scholar
  4. [n. d.]. Octane Benchmark Suite. ([n. d.]). https://developers.google.com/octane/.Google ScholarGoogle Scholar
  5. [n. d.]. Sunspider Benchmark Suite. ([n. d.]). https://www.webkit.org/perf/sunspider/sunspider.html.Google ScholarGoogle Scholar
  6. 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 ScholarGoogle Scholar
  7. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. JK Iliffe. 1969. Elements of BLM. Comput. J. 12, 3 (1969), 251-258.Google ScholarGoogle ScholarCross RefCross Ref
  14. R Johnson. 1981. The Intel iAPX-432: an architecture for Ada. In High Performance Computer Architecture (HPCA), 1981 IEEE International Symposium on. IEEE.Google ScholarGoogle Scholar
  15. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  16. Harlan McGhan and Mike O'Connor. 1998. Picojava: A direct execution engine for java bytecode. Computer 31, 10 (1998), 22-30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Chris Porthouse. 2005. High performance Java on embedded devices-Jazelle DBX technology: ARM acceleration technology for the Java Platform. Jazelle DBX WhitePaper (2005).Google ScholarGoogle Scholar
  18. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  19. 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 ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. JSCore: architectural support for accelerating JavaScript execution (short WIP paper)

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in

      Full Access

      • Published in

        cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 53, Issue 6
        LCTES '18
        June 2018
        112 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/3299710
        Issue’s Table of Contents
        • cover image ACM Conferences
          LCTES 2018: Proceedings of the 19th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems
          June 2018
          112 pages
          ISBN:9781450358033
          DOI:10.1145/3211332

        Copyright © 2018 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 19 June 2018

        Check for updates

        Qualifiers

        • article
      • Article Metrics

        • Downloads (Last 12 months)8
        • Downloads (Last 6 weeks)1

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!