I agree that the performance difference observed by the poster is most likely caused by the disk latency that brings the JRE to memory. The Just In Time (JIT) compiler will not affect the performance of a small application.
Java 1.6u10 ( http://download.java.net/jdk6/ ) deals with executable JARs in the background process (even if Java does not work) in order to maintain data in the disk cache. This significantly reduces startup time (which is a huge advantage for desktop applications, but is probably of little importance for server-side applications).
In large, long applications, JIT is important over time, but the time it takes for the JIT to accumulate enough statistics to run and optimize (5-10 seconds) is very, very short compared to the overall life of the application (most of They work for months and months). Saving and restoring JIT results is an interesting academic exercise, the practical improvement is not very large (therefore, the JIT team is more focused on things like GC strategies to minimize misses in the memory cache, etc.).
Precompiling runtime classes rarely helps desktop applications (like the previous 6u10 disk cache preload).
source share