Реализованная на аппаратном уровне, машина на основе регистров будет более эффективной просто потому, что доступ к медленному ОЗУ будет меньше. Однако в программном обеспечении даже архитектура на основе регистров, скорее всего, будет иметь «регистры» в ОЗУ. В этом случае стековая машина будет столь же эффективной.
Кроме того, виртуальная машина на основе стека значительно упростит написание компиляторов. Вам не нужно иметь дело со стратегиями распределения регистров. По сути, у вас есть неограниченное количество регистров для работы.
Обновление: Я написал этот ответ, предполагая интерпретированную ВМ. Это может не соответствовать действительности для виртуальной машины, скомпилированной JIT. Я наткнулся на эту статью , которая, кажется, указывает на то, что виртуальная машина, скомпилированная JIT, может быть более эффективной при использовании архитектуры регистра.