Каноническая реализация JVM от Sun применяет некоторую довольно сложную оптимизацию для байт-кода для получения скоростей близкого к употреблению после того, как код был запущен несколько раз.
Вопрос в том, почему этот скомпилированный код не кэшируется на диск для использования при последующем использовании той же функции/класса?
В любом случае, каждый раз, когда программа выполняется, компилятор JIT запускается заново, вместо использования предварительно скомпилированной версии кода. Не добавили бы эту функцию, добавив существенное повышение начального времени выполнения программы, когда байт-код по сути интерпретируется?