Hacker News new | ask | show | jobs
by haberman 3553 days ago
How does this interact with classloading?

My general impression is that the design of classloaders is pretty actively hostile to making JVM startup fast.

2 comments

AOT only applies to clases that have been AOT-compiled and are not transformed at runtime. Everything else will either still be need JITing or could potentially throw errors if pure AOT is desired.

AOT and JIT are not mutually exclusive. From the proposal itself:

> AOT libraries can be compiled in two modes:

> Non-tiered AOT compiled code behaves similarly to statically compiled C++ code in that no profiling information is collected and no JIT recompilations will happen.

> Tiered AOT compiled code does collect profiling information. The profiling done is the same as the simple profiling done by C1 methods compiled at Tier 2. If AOT methods hit the AOT invocation thresholds these methods are being recompiled by C1 at Tier 3 first in order to gather full profiling information. This is required for C2 JIT recompilations to be able to produce optimal code and reach peak application performance.

Yes it is. On the other hand, gcj still did it years ago. I guess some features like dynamic class loading are just not supported.