为常用库做一些 JVM 缓存静态初始化结果 类

Do some JVMs cache static initializer results, for commonly used library classes

由于 JVM 启动时间似乎是一个关注点,因此缓存一些更复杂的静态初始化程序的结果是否有意义,例如 java.lang.invoke.MethodType(以及其他 java.lang 类 具有复杂的初始化逻辑)。在 运行 一次后,JVM 将能够更快地启动。此外,我相信静态初始化器从不包含某些 JIT 优化,因此一些静态初始化器可能非常慢。我想缓存只能在纯静态初始化器上工作,所以任何缓存都可能必须限制在标准库中。是否有任何 JVM 实现对静态初始化的 类 进行某种缓存?

是的。例如,GraalVM Native Image 可以在构建时初始化某些 类 一次。
请参阅 --initialize-at-build-time= 选项。