skip to main content
10.1145/3618305.3623593acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
short-paper

Remote Just-in-Time Compilation for Dynamic Languages

Published:22 October 2023Publication History

ABSTRACT

Cloud platforms allow applications to meet fluctuating levels of demand through automatic horizontal scaling. These deployment models are characterized by short-lived applications running in resource-constrained environments. This amplifies the overhead of dynamic languages with just-in-time (JIT) compilation. Dynamic-language runtimes suffer from a warmup phase and resource-usage peaks caused by JIT compilation. Offloading compilation jobs to a dedicated server is a possible mitigation for these problems. We propose leveraging remote JIT compilation as a means to enable coordination between the independent instances. By sharing compilation results, aggregating profiles, and adapting the compiler and compilation policy, we strive to improve the peak performance and further reduce the warmup time of these applications. Additionally, an implementation on top of the Truffle framework enables us to bring these benefits to many popular languages.

References

  1. 2023. Acme Air Sample and Benchmark. https://github.com/blueperf/acmeair-monolithic-java Google ScholarGoogle Scholar
  2. 2023. Spring PetClinic Sample Application. https://github.com/spring-projects/spring-petclinic Google ScholarGoogle Scholar
  3. Azul. 2023. Cloud Native Compiler. https://docs.azul.com/cloud_native_compiler/ Google ScholarGoogle Scholar
  4. Edd Barrett, Carl Friedrich Bolz-Tereick, Rebecca Killick, Sarah Mount, and Laurence Tratt. 2017. Virtual Machine Warmup Blows Hot and Cold. Proc. ACM Program. Lang., 1, OOPSLA (2017), Article 52, 10, 27 pages. https://doi.org/10.1145/3133876 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Dev Bhattacharya, Kenneth B. Kent, Eric Aubanel, Daniel Heidinga, Peter Shipton, and Aleksandar Micic. 2017. Improving the performance of JVM startup using the shared class cache. In 2017 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PACRIM). 1–6. https://doi.org/10.1109/PACRIM.2017.8121911 Google ScholarGoogle ScholarCross RefCross Ref
  6. IBM Corporation. 2022. Java EE7: DayTrader7 Sample. https://github.com/wasdev/sample.daytrader7 Google ScholarGoogle Scholar
  7. Emanuel Ferreira Coutinho, Flávio Rubens de Carvalho Sousa, Paulo Antonio Leal Rego, Danielo Gonçalves Gomes, and José Neuman de Souza. 2014. Elasticity in cloud computing: a survey. Annals of Telecommunications, 70, 7-8 (2014), Nov., 289–309. https://doi.org/10.1007/s12243-014-0450-7 Google ScholarGoogle ScholarCross RefCross Ref
  8. Alexey Khrabrov, Marius Pirvu, Vijay Sundaresan, and Eyal de Lara. 2022. JITServer: Disaggregated Caching JIT Compiler for the JVM in the Cloud. In 2022 USENIX Annual Technical Conference (USENIX ATC 22). USENIX Association, Carlsbad, CA. 869–884. https://www.usenix.org/conference/atc22/presentation/khrabrov Google ScholarGoogle Scholar
  9. Thomas Kotzmann, Christian Wimmer, Hanspeter Mössenböck, Thomas Rodriguez, Kenneth Russell, and David Cox. 2008. Design of the Java HotSpot ™ Client Compiler for Java 6. ACM Trans. Archit. Code Optim., 5, 1 (2008), Article 7, 5, 32 pages. issn:1544-3566 https://doi.org/10.1145/1369396.1370017 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Oracle. 2023. GraalPy. https://github.com/oracle/graalpython Google ScholarGoogle Scholar
  11. Oracle. 2023. GraalVM Compiler. https://www.graalvm.org/latest/reference-manual/java/compiler/ Google ScholarGoogle Scholar
  12. Oracle. 2023. Native Image. https://www.graalvm.org/latest/reference-manual/native-image/ Google ScholarGoogle Scholar
  13. Guilherme Ottoni and Bin Liu. 2021. HHVM Jump-Start: Boosting Both Warmup and Steady-State Performance at Scale. In 2021 IEEE/ACM International Symposium on Code Generation and Optimization (CGO). 340–350. https://doi.org/10.1109/CGO51591.2021.9370314 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Aleksandar Prokopec, Gilles Duboscq, David Leopoldseder, and Thomas Wïrthinger. 2019. An Optimization-Driven Incremental Inline Substitution Algorithm for Just-in-Time Compilers. In 2019 IEEE/ACM International Symposium on Code Generation and Optimization (CGO). 164–179. https://doi.org/10.1109/CGO.2019.8661171 Google ScholarGoogle ScholarCross RefCross Ref
  15. Aleksandar Prokopec, Andrea Rosà, David Leopoldseder, Gilles Duboscq, Petr Tůma, Martin Studener, Lubomír Bulej, Yudi Zheng, Alex Villazón, Doug Simon, Thomas Würthinger, and Walter Binder. 2019. Renaissance: Benchmarking Suite for Parallel Applications on the JVM. In Proc. 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). 17. https://doi.org/10.1145/3314221.3314637 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Thomas Würthinger, Christian Wimmer, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Christian Humer, Gregor Richards, Doug Simon, and Mario Wolczko. 2013. One VM to Rule Them All. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward! 2013). Association for Computing Machinery, New York, NY, USA. 187–204. isbn:9781450324724 https://doi.org/10.1145/2509578.2509581 Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Xiaoran Xu, Keith Cooper, Jacob Brock, Yan Zhang, and Handong Ye. 2018. ShareJIT: JIT Code Cache Sharing across Processes and Its Practical Implementation. 2, OOPSLA (2018), Article 124, 10, 23 pages. https://doi.org/10.1145/3276494 Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Remote Just-in-Time Compilation for Dynamic Languages

      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
      • Published in

        cover image ACM Conferences
        SPLASH 2023: Companion Proceedings of the 2023 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity
        October 2023
        71 pages
        ISBN:9798400703843
        DOI:10.1145/3618305

        Copyright © 2023 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 22 October 2023

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • short-paper

        Upcoming Conference

      • Article Metrics

        • Downloads (Last 12 months)51
        • Downloads (Last 6 weeks)2

        Other Metrics

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader