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.
In IEEE Workshop on Programming Languages for Real-Time Industrial Applications