Jestem ciekawy, dlaczego firma Sun zdecydowała się na wykorzystanie stosu JVM, a Google zdecydował się na utworzenie rejestru DalvikVM?
Przypuszczam, że JVM nie może tak naprawdę zakładać, że pewna liczba rejestrów jest dostępna na platformie docelowej, ponieważ ma być niezależna od platformy. Dlatego po prostu odkłada alokację rejestru itp. Do kompilatora JIT. (Popraw mnie, jeśli się mylę.)
Więc faceci z Androidem pomyśleli: „hej, to nieefektywne, przejdźmy od razu do maszyny wirtualnej opartej na rejestrze…”? Ale czekaj, istnieje wiele różnych urządzeń z Androidem, jaką liczbę rejestrów wybrał Dalvik? Czy opkody Dalvik są zakodowane na stałe dla określonej liczby rejestrów?
Czy wszystkie obecne na rynku urządzenia z Androidem mają mniej więcej taką samą liczbę rejestrów? A może jest przeprowadzana ponowna alokacja rejestru podczas ładowania dex? Jak to wszystko do siebie pasuje?