Merak ediyorum, Sun neden JVM yığın tabanlı yapmaya karar verdi ve Google DalvikVM'yi kayıt tabanlı yapmaya karar verdi?
Sanırım JVM, platformdan bağımsız olması gerektiğinden, hedef platformda belirli sayıda kaydın bulunduğunu gerçekten varsayamaz. Bu nedenle, sadece kayıt-tahsisini vb. JIT derleyicisine erteler. (Yanlışsam düzelt.)
Bu yüzden Android çalışanları "hey, bu verimsiz, hemen kayıt tabanlı bir sanal makine alalım ..." diye düşündüler. Ama bekleyin, birden fazla farklı android cihaz var, Dalvik kaç kayıt hedefledi? Dalvik işlem kodları belirli sayıda kayıt için kodlanmış mı?
Piyasadaki tüm mevcut Android cihazlarda yaklaşık aynı sayıda kayıt var mı? Veya dex yükleme sırasında gerçekleştirilen bir kayıt yeniden tahsisi var mı? Bütün bunlar nasıl birbirine uyuyor?