A metaobject protocol for optimizing application-speci€c run-Time variability

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

Descripción completa

Detalles Bibliográficos
Publicado: 2017
Materias:
Acceso en línea:https://bibliotecadigital.exactas.uba.ar/collection/paper/document/paper_97814503_v_n_p_Chari
http://hdl.handle.net/20.500.12110/paper_97814503_v_n_p_Chari
Aporte de:
id paper:paper_97814503_v_n_p_Chari
record_format dspace
spelling paper:paper_97814503_v_n_p_Chari2023-06-08T16:37:34Z A metaobject protocol for optimizing application-speci€c run-Time variability Object oriented programming Optimization Application developers Application level Application performance Dynamic compilation Just in time compilers Metaobject protocol Speculative optimization Variability patterns Program compilers 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 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 improvements for a few scenarios in a dynamic language built on top of the Truffle and Graal system. © 2017 ACM. 2017 https://bibliotecadigital.exactas.uba.ar/collection/paper/document/paper_97814503_v_n_p_Chari http://hdl.handle.net/20.500.12110/paper_97814503_v_n_p_Chari
institution Universidad de Buenos Aires
institution_str I-28
repository_str R-134
collection Biblioteca Digital - Facultad de Ciencias Exactas y Naturales (UBA)
topic Object oriented programming
Optimization
Application developers
Application level
Application performance
Dynamic compilation
Just in time compilers
Metaobject protocol
Speculative optimization
Variability patterns
Program compilers
spellingShingle Object oriented programming
Optimization
Application developers
Application level
Application performance
Dynamic compilation
Just in time compilers
Metaobject protocol
Speculative optimization
Variability patterns
Program compilers
A metaobject protocol for optimizing application-speci€c run-Time variability
topic_facet Object oriented programming
Optimization
Application developers
Application level
Application performance
Dynamic compilation
Just in time compilers
Metaobject protocol
Speculative optimization
Variability patterns
Program compilers
description 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 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 improvements for a few scenarios in a dynamic language built on top of the Truffle and Graal system. © 2017 ACM.
title A metaobject protocol for optimizing application-speci€c run-Time variability
title_short A metaobject protocol for optimizing application-speci€c run-Time variability
title_full A metaobject protocol for optimizing application-speci€c run-Time variability
title_fullStr A metaobject protocol for optimizing application-speci€c run-Time variability
title_full_unstemmed A metaobject protocol for optimizing application-speci€c run-Time variability
title_sort metaobject protocol for optimizing application-speci€c run-time variability
publishDate 2017
url https://bibliotecadigital.exactas.uba.ar/collection/paper/document/paper_97814503_v_n_p_Chari
http://hdl.handle.net/20.500.12110/paper_97814503_v_n_p_Chari
_version_ 1768545809435983872