4 ms·
Java AOT is compile JVM bytecode to native code during startup of JVM, which is different from Go's compile source to native and distribute platform specific bi
by paukiatwee 10y ago
Java AOT is compile JVM bytecode to native code during startup of JVM, which is different from Go's compile source to native and distribute platform specific binaries. So in this case, Java binary size remain same as before, which is .jar or .war binaries.
For Go, .go -> native
For Java, .java -> .class -> package .jar -> AOT native
For Go part I might be wrong, not working on Go professionally.
- sandGorgon 10y agothat is an incorrect assumption. AOT step will include deadcode elimination. In that way - the Java way is a more sophisticated way combining platform independent bytecode and platform-specific machine code.
- Scarbutt 10y agoMy understanding is that JVM bytecode is compiled to native before startup of the JVM, that is why it is called AOT ;)
- bitmapbrother 10y agoNo it's not. Compilers such as the one in IBM's J9 have a switch setting to use AOT.
- mike_hearn 10y agoNo, not during startup, AOT can happen at any time chosen by the developer or user: there's a command line tool that triggers it and I believe the plan is to integrate it with the "jlink" tool that produces standalone, app specific JRE images. So you can produce a native installer for each platform.