What are the functions of the JVM? All I know are:
- JIT compiler
- GC
- memory allocator
What are the steps it does when you load a Java application?
I am wondering because if I compare the loading time of a Java application with these steps:
InitializeNativeTarget
on LLVM- some GC initialization
- some Qt/GTK/whatever init
- some JIT/ahead compilation of parts of the app
- the app init itself
It seems to me that the JVM takes much longer to load than it would take to do the steps I listed above. So what does it do in addition to that?