From all the google I/O and blogs that I have read on Dalvik and ART I get to know info on how Dalvik is different from JVM in terms of ability to run multiple VMs, how JIT and AOT compiler makes runtime better, How profiler guided compilation helps improve performance. Basically, we have lot of information how execution happens in ART and Dalvik and even how register based VM is better for this use case in terms of memory optimizations. However, I have following questions:
- Is class loading linking verify and Initialisation same in JVM Dalvik and ART?
- Is ART register based as well?
- By Register based is it only method area that is register based as compared to JVM while heap remains the same?
Edit : Forgot to mention above, Android uses Zygote that means each process won't need to preload Java and system libraries