3 ms·
In the JIT world, going .java->.class is not AOT. You may call it that, but it's essentially just source->source conversion. What AOT really is, is when you fi
by CountHackulus 15y ago
In the JIT world, going .java->.class is not AOT. You may call it that, but it's essentially just source->source conversion.
What AOT really is, is when you first run a java program with certain flags, and some compilation starts, a special AOT version, which is usually a low optimization level which is saved to disk with some relocation markers.
This helps with startup time in subsequent runs as the compiler can just load its baseline pre-compiled classes straight into memory instead of having to do a bunch of grunt work during startup. Once things get going, the compiler can much more quickly work its way up to the higher optimization levels on the sections of code that need it.
THAT is what AOT means from a jitted language perspective.
- gtrak 15y agoJava bytecode is what we mean when we say 'compile'. AOT is 'ahead of time' with regard to clojure, since it compiles to bytecode at run-time normally.
- ataggart 15y ago"AOT" in the clojure world means compiling your clojure source down to JVM bytecode, which also means compiled-in calls against a particular state of clojure's internal java api. By shipping clojure source, one avoids any concerns over incidental changes to internal code.