title: Why doesn't the JVM cache JIT compiled code?
body: <p>The canonical JVM implementation from Sun applies some pretty sophisticated optimization to bytecode to obtain near-native execution speeds after the code has been run a few times. </p>
  
  <p>The question is, why isn't this compiled code cached to disk for use during subsequent uses of the same function/class?</p>
  
  <p>As it stands, every time a program is executed, the JIT compiler kicks in afresh, rather than using a pre-compiled version of the code. Wouldn't adding this feature add a significant boost to the initial run time of the program, when the bytecode is essentially being interpreted?</p>