Saya penasaran, mengapa Sun memutuskan untuk membuat JVM berbasis tumpukan dan Google memutuskan untuk membuat berbasis register DalvikVM?
Saya kira JVM tidak dapat benar-benar berasumsi bahwa sejumlah register tersedia pada platform target, karena itu seharusnya platform independen. Oleh karena itu hanya menunda alokasi register dll, ke kompilator JIT. (Koreksi saya jika saya salah.)
Jadi orang-orang Android berpikir, "hei, itu tidak efisien, mari kita langsung mendaftar vm berbasis ..."? Tapi tunggu, ada beberapa perangkat Android yang berbeda, berapa register yang ditargetkan Dalvik? Apakah opcode Dalvik di-hardcode untuk sejumlah register tertentu?
Apakah semua perangkat Android yang ada di pasaran memiliki jumlah register yang kurang lebih sama? Atau, apakah ada alokasi ulang register yang dilakukan selama dex-loading? Bagaimana semua ini cocok?