Je suis curieux de savoir pourquoi Sun a décidé de rendre la pile JVM basée sur la pile et Google a décidé de créer la base de registre DalvikVM?
Je suppose que la JVM ne peut pas vraiment supposer qu'un certain nombre de registres sont disponibles sur la plate-forme cible, car elle est censée être indépendante de la plate-forme. Pour cela, il reporte simplement l'allocation de registre, etc. au compilateur JIT. (Corrige moi si je me trompe.)
Alors les gars d'Android ont pensé, "hé, c'est inefficace, allons tout de suite pour une VM basée sur un registre ..."? Mais attendez, il existe plusieurs appareils Android différents, quel nombre de registres le Dalvik a-t-il ciblé? Les opcodes Dalvik sont-ils codés en dur pour un certain nombre de registres?
Tous les appareils Android actuels sur le marché ont-ils à peu près le même nombre de registres? Ou, y a-t-il une réallocation de registre effectuée pendant le chargement de dex? Comment tout cela s'articule-t-il?