Controlling run-time compilation

Tim Harris · 1998

This paper describes a technique for integrating run-time compilation which is effectively pause free and for which the worst-case impact can be bounded. Three extensions to a JVM implementation are used. Firstly, a new scheduler allows the allocation of CPU time to threads to be controlled. Secondly, a code generator provides a mechanism for run-time compilation. Finally, a control interface allow application-specific compilation policies to be specified. By defining a compilation policy in which native code is generated in a designated compiler thread with a limited CPU allocation, it is possible to bound the worst-case impact of the compiler. 1 Introduction The widespread deployment of the Java language is curtailed by the performance of existing implementations of the Java Virtual Machine (JVM, [LY97]). Although there are numerous and well known techniques for optimizing object-oriented programming languages, the extent to which these can be applied within the JVM is limited by th...

Read the paper · More papers on PaperTik