Java applications rely on just-in-time (JIT) compilers or adaptive compilers to generate and optimize binary code at runtime to boost performance. In conventional Java virtual machines (JVM), however, the binary code is typically written into the data cache, and then is loaded into the instruction cache through the shared L2 cache or memory, which is not efficient. In this paper, we study different efficient code caching strategies to write and read the dynamically generated code faster. Our experimental results indicate that writing code directly into the instruction cache can improve the performance of Java application by up to 42.9%, with 9.6% on average.
['Yu Sun', 'Wei Zhang']
Improving code caching performance for Java applications