Tengo curiosidad, ¿por qué Sun decidió hacer que la JVM se basara en pilas y Google decidió hacer que DalvikVM se basara en registros?
Supongo que la JVM realmente no puede asumir que una cierta cantidad de registros están disponibles en la plataforma de destino, ya que se supone que es independiente de la plataforma. Por lo tanto, simplemente pospone la asignación de registros, etc., al compilador JIT. (Corrígeme si me equivoco.)
Entonces, los chicos de Android pensaron, "oye, eso es ineficiente, vamos a buscar una máquina virtual basada en registros de inmediato ...". Pero espere, hay varios dispositivos Android diferentes, ¿a qué número de registros apuntó Dalvik? ¿Están codificados los códigos de operación de Dalvik para un cierto número de registros?
¿Todos los dispositivos Android actuales del mercado tienen aproximadamente el mismo número de registros? O, ¿se realiza una reasignación de registros durante la carga dex? ¿Cómo encaja todo esto?