skip to main content
research-article

Language-independent storage strategies for tracing-JIT-based virtual machines

Published:21 October 2015Publication History
Skip Abstract Section

Abstract

Storage strategies have been proposed as a run-time optimization for the PyPy Python implementation and have shown promising results for optimizing execution speed and memory requirements. However, it remained unclear whether the approach works equally well in other dynamic languages. Furthermore, while PyPy is based on RPython, a language to write VMs with reusable components such as a tracing just-in-time compiler and garbage collection, the strategies design itself was not generalized to be reusable across languages implemented using that same toolchain. In this paper, we present a general design and implementation for storage strategies and show how they can be reused across different RPython-based languages. We evaluate the performance of our implementation for RSqueak, an RPython-based VM for Squeak/Smalltalk and show that storage strategies may indeed offer performance benefits for certain workloads in other dynamic programming languages.We furthermore evaluate the generality of our implementation by applying it to Topaz, a Ruby VM, and Pycket, a Racket implementation.

References

  1. S. Bauman, C. F. Bolz, R. Hirschfeld, V. Krilichev, T. Pape, J. Siek, and S. Tobin-Hochstadt. Pycket: A tracing JIT for a functional language. In Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, ICFP ’15, New York, NY, USA, 2015. ACM. ISBN 978-1- 4503-3669-7. to appear. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. C. F. Bolz, A. Cuni, M. Fijłakowski, M. Leuschel, S. Pedroni, and A. Rigo. Allocation removal by partial evaluation in a tracing jit. In Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation, pages 43–52. ACM, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. F. Bolz, L. Diekmann, and L. Tratt. Storage strategies for collections in dynamically typed languages. In Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications, pages 167––182. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. G. Bracha and W. Cook. Mixin-based inheritance. ACM SIGPLAN Notices, 25(10):303–311, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Flatt, S. Krishnamurthi, and M. Felleisen. Classes and mixins. In Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 171–183. ACM, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. B. Goldberg and Y. G. Park. Higher order escape analysis: optimizing stack allocation in functional program implementations. In ESOP’90, pages 152–160. Springer, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. IEEE. Ieee 754: Standard for binary floating-point arithmetic, Aug. 2014. URL http://grouper.ieee.org/groups/ 754.Google ScholarGoogle Scholar
  8. T. Kalibera and R. Jones. Rigorous benchmarking in reasonable time. In ACM SIGPLAN Notices, volume 48(11), pages 63–74. ACM, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Oracle. OpenJDK: Graal project, Aug. 2014. URL http: //openjdk.java.net/projects/graal/.Google ScholarGoogle Scholar
  10. C. Seaton. Optimising small data structures in jruby +truffle, Aug. 2014. URL http://www.chrisseaton.com/ rubytruffle/small-data-structures/.Google ScholarGoogle Scholar
  11. C. Wimmer and T. Würthinger. Tru ffle: a self-optimizing runtime system. In Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity, pages 13–14. ACM, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Language-independent storage strategies for tracing-JIT-based virtual machines

    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 51, Issue 2
      DLS '15
      Feburary 2016
      176 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2936313
      • Editor:
      • Andy Gill
      Issue’s Table of Contents
      • cover image ACM Conferences
        DLS 2015: Proceedings of the 11th Symposium on Dynamic Languages
        October 2015
        176 pages
        ISBN:9781450336901
        DOI:10.1145/2816707

      Copyright © 2015 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 21 October 2015

      Check for updates

      Qualifiers

      • research-article

    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!