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 metaobj...
Compiler writers have crafted many heuristics over the years to approximately solve NP-hard problems...
International audienceParallel applications used to be executed alone until their termination on par...
The primary reason for performing compiler optimizations before running the program is that they are...
International audienceRuntime metaprogramming enables many useful applications and is often a conven...
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object ...
Managed language platforms such as the Java Virtual Machine or the Common Language Runtime rely on a...
Compile-time optimization is often limited by a lack of target machine and input data set knowledge....
While dynamic languages are now mainstream choices for application development, most popular dynamic...
International audienceHigh-performance dynamic language implementations make heavy use of speculativ...
Runtime compilation, due to its online nature, presents unique challenges and opportunities to compi...
Modern compilers implement a number of optimization switches and they must be configured carefully i...
A variability mechanism is a software implementation technique that realizes a choice in the feature...
All high-performance production JVMs employ an adaptive strategy for program execution. Methods are ...
Compared to traditional compile-time optimization, run-time optimization could offer signi@...
. We present a technique to measure and detect changes in the behavioral patterns of applications. I...
Compiler writers have crafted many heuristics over the years to approximately solve NP-hard problems...
International audienceParallel applications used to be executed alone until their termination on par...
The primary reason for performing compiler optimizations before running the program is that they are...
International audienceRuntime metaprogramming enables many useful applications and is often a conven...
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object ...
Managed language platforms such as the Java Virtual Machine or the Common Language Runtime rely on a...
Compile-time optimization is often limited by a lack of target machine and input data set knowledge....
While dynamic languages are now mainstream choices for application development, most popular dynamic...
International audienceHigh-performance dynamic language implementations make heavy use of speculativ...
Runtime compilation, due to its online nature, presents unique challenges and opportunities to compi...
Modern compilers implement a number of optimization switches and they must be configured carefully i...
A variability mechanism is a software implementation technique that realizes a choice in the feature...
All high-performance production JVMs employ an adaptive strategy for program execution. Methods are ...
Compared to traditional compile-time optimization, run-time optimization could offer signi@...
. We present a technique to measure and detect changes in the behavioral patterns of applications. I...
Compiler writers have crafted many heuristics over the years to approximately solve NP-hard problems...
International audienceParallel applications used to be executed alone until their termination on par...
The primary reason for performing compiler optimizations before running the program is that they are...