Jazzing up JVMs with off-line profile data - Does it pay?
In Java Virtual Machines employing dynamic compilation, there exists a tradeoff between compilation overhead and execution time. The compilation efforts are directed selectively on program hotspots so that gains in performance due to compiled code can overcome compilation cost. Using online profile incurs runtime-profiling overhead. Using only offline profile data might result in selecting cold methods for compilation when offline profile does not mirror current application behavior. Hence we propose a hybrid scheme that incorporates both online and offline profile to identify selective compilation candidates. We also discuss the significance of selective compilation ordering especially in applications which exhibit phase changes with respect to the method invocations it makes. This results in the hotspots of the program also changing as the application executes. Hence it is important for the selective compilation scheme to be highly responsive to phase changes and target the compilation efforts on the new hotspots, as they appear. We propose a temporal event graph for capturing this phase changing behavior of the application (in terms of the method calls it makes) and use this information in making better selective compilation decisions.
off-line profile selective compilation on-line profile feedback java (tm) virtual machine