skip to main content
10.1145/3098572.3098577acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

A Metaobject Protocol for Optimizing Application-Specific Run-Time Variability

Published: 19 June 2017 Publication History

Abstract

Just-in-time compilers and their aggressive speculative optimizations reduced the performance gap between dynamic and static languages drastically. To successfully speculate, compilers rely on the program variability observed at run time to be low, and use heuristics to determine when optimization is beneficial. However, some variability patterns are hard to capture with heuristics. Specifically, ephemeral, warmup, rare, and highly indirect variability are challenges for today's compiler heuristics. As a consequence, they can lead to reduced application performance. However, these types of variability are identifiable at the application level and could be mitigated with information provided by developers. As a solution, we propose a metaobject protocol for dynamic compilation systems to enable application developers to provide such information at run time. As a proof of concept, we demonstrate performance improvements for a few scenarios in a dynamic language built on top of the Truffle and Graal system.

References

[1]
C. Chambers, D. Ungar, and E. Lee. An efficient implementation of self a dynamically-typed object-oriented language based on prototypes. In OOPSLA, pages 49--70. ACM, October 1989.
[2]
G. Chari, D. Garbervetsky, S. Marr, and S. Ducasse. Towards fully reflective environments. In Onward! ACM, 2015.
[3]
G. Chari, D. Garbervetsky, and S. Marr. Building efficient and highly run-time adaptable virtual machines. In Proceedings of the 12th Symposium on Dynamic Languages, DLS 2016, pages 60--71, New York, NY, USA, 2016. ACM. ISBN 978-1-4503-4445-6.
[4]
U. Hölzle and D. M. Ungar. Adaptive optimization for SELF: reconciling high performance with exploratory programming. Number 1520. Department of Computer Science, Stanford University, 1994.
[5]
U. Holzle, C. Chambers, and D. Ungar. Optimizing dynamically-typed object-oriented languages with polymorphic inline caches. In ECOOP, pages 21--38. Springer, 1991. ISBN 3-540-54262-0.
[6]
G. Kiczales and J. D. Rivieres. The Art of the Metaobject Protocol. MIT Press, 1991. ISBN 0262111586.
[7]
S. Marr, C. Seaton, and S. Ducasse. Zero-Overhead Metaprogramming: Reflection and Metaobject Protocols Fast and Without Compromises. In PLDI, pages 545--554. ACM, 2015. ISBN 978-1-4503-3468-6.
[8]
T. Pape, T. Felgentreff, and R. Hirschfeld. Optimizing sideways composition: Fast context-oriented programming in contextpypy. In Proceedings of the 8th International Workshop on Context-Oriented Programming, COP'16, pages 13--20, New York, NY, USA, 2016. ACM. ISBN 978-1-4503-4440-1.
[9]
T. Rompf, A. K. Sujeeth, K.J. Brown, H. Lee, H. Chafi, and K. Olukotun. Surgical precision jit compilers. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '14, pages 41--52. ACM, 2014. ISBN 978-1-4503-2784-8.
[10]
A. Wöß, C. Wirth, D. Bonetta, C. Seaton, C. Humer, and H. Mössenböck. An object storage model for the truffle language implementation framework. In PPPJ, pages 133--144. ACM, 2014.
[11]
T. Würthinger, C. Wimmer, A. Wöß, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, and M. Wolczko. One vm to rule them all. In Onward!, pages 187--204. ACM, 2013. ISBN 978-1-4503-2472-4.

Cited By

View all
  • (2021)Avoiding monomorphization bottlenecks with phase-based splittingCompanion Proceedings of the 2021 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3484271.3484976(16-18)Online publication date: 17-Oct-2021
  1. A Metaobject Protocol for Optimizing Application-Specific Run-Time Variability

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ICOOOLPS'17: Proceedings of the 12th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
    June 2017
    39 pages
    ISBN:9781450350884
    DOI:10.1145/3098572
    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 ACM 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]

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 19 June 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Conference

    ECOOP '17

    Acceptance Rates

    ICOOOLPS'17 Paper Acceptance Rate 6 of 8 submissions, 75%;
    Overall Acceptance Rate 11 of 14 submissions, 79%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)2
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 08 Mar 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2021)Avoiding monomorphization bottlenecks with phase-based splittingCompanion Proceedings of the 2021 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3484271.3484976(16-18)Online publication date: 17-Oct-2021

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media