Register-Based and Stack-Based Virtual Machines: Which Perform Better in JIT Compilation Scenarios?

Date issued

2025

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

Background: Just-In-Time (JIT) compilation plays a critical role in optimizing the performance of modern virtual machines (VMs). While the architecture of VMs – register-based or stack-based – has long been a subject of debate, empirical analysis focusing on JIT compilation performance is relatively sparse. Objective: In this study, we aim to answer the question: “Register-based and stack-based virtual machines: which perform better in JIT compilation scenarios?”. Methods: We explore this through a comprehensive set of benchmarks measuring execution speed. To achieve this, we developed identical test cases in languages that support both types of VM architectures and ran these tests under controlled conditions. The performance metrics were captured and analyzed for JIT compilation, including initial interpretation, bytecode translation, and optimized code execution. Results: Our findings suggest that register-based VMs generally outperform stack-based VMs in terms of execution speed. Moreover, the performance gap between the two architectures in mixed execution mode, which essentially copies characteristics of the underlying virtual machine, suggests that making the right choice of VM architecture is still important. Conclusion: This study provides developers, researchers, and system architects with actionable insights into the performance trade-offs associated with each VM architecture in JIT-compiled environments. The findings can guide the design decisions in the development of new virtual machines and JIT compilation strategies.
Kontext: Kompilace typu "Just-in-Time" (JIT) hraje kritickou úlohu v optimalizacích výkonnosti moderních virtuálních strojů (VM). Zatímco architektura VM - založených na registrech a založených na zásobníku - byla dlouho předmětem debaty, empirická analýza zaměřená na výkonnost JIT kompilace je relativně vzácná. Účel: V této studii si klademe za cíl nalézt odpověď na tuto otázku: "Virtuální stroje založené na registrech a na zásobníku: které mají lepší výkonnost v kompilacích typu JIT?" Metody: Prozkoumáváme tuto oblast prostřednictvím sady benchmarků měřících dobu provádění úloh. Abychom toho dosáhli, vyvinuli jsme identické testovací případy v jazycích, které podporují oba typy architektur VM a provedli jsme tyto testy v kontrolovaných podmínkách. Výkonnostní indikátory jsme zaznamenali a analyzovali pro kompilaci JIT, včetně původního překladu (interpretace), překladu bytekódu a optimalizovaného provedení kódu. Výsledky: Naše výstupy naznačují, že VM založené na registrech obecně překonávají VM založené na zásobníku co do rychlosti provedení. Navíc rozdíl mezi výkonnostmi obou architektur v promíchaném prováděcím módu, který převážně kopíruje vlastnosti používaného virtuálního stroje, ukazuje, že správná volba architektury VM je stále důležitá. Závěr: Tato studie poskytuje vývojářům, výzkumníkům a systémovým architektům potřebný vhled do kompromisů v efektivitě spojených s každou architekturou VM v prostředích JIT kompilátorů. Výsledky mohou pomoci udělat lepší rozhodnutí v návrhu vývoje nových virtuálních strojů a JIT kompilačních strategií.

Description

Subject(s)

just-in-time compilation, register-based VMs, stack-based VMs, virtual machines, kompilace just-in-time, VM založené na registrech, VM založené na zásobníku, virtuální stroje

Citation

Collections