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

Guido Chari, Diego Garbervetsky, Stefan Marr

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Just-in-time compilers and their aggressive speculative optimiza- tions 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 bene€cial. However, some variability paŠerns are hard to capture with heuristics. Specif- ically, 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 identi€able 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 improve- ments for a few scenarios in a dynamic language built on top of the Tru„e and Graal system.
Original languageEnglish
Title of host publicationProceeding ICOOOLPS'17 Proceedings of the 12th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems
Place of PublicationNew York
PublisherACM
Number of pages5
ISBN (Print)978-1-4503-5088-4
DOIs
Publication statusPublished - 2017

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102022 Software development
  • 102024 Usability research
  • 102029 Practical computer science

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this