Improved Ahead-of-Time Compilation of Stack-Based JVM Bytecode on Resource-Constrained Devices
Niels Reijers, Chi-Sheng Shih

TL;DR
This paper presents optimized ahead-of-time compilation techniques for stack-based JVM bytecode tailored for resource-constrained sensor devices, significantly reducing overhead and enabling better performance and larger code capacity.
Contribution
It introduces novel optimizations that cut performance and size overheads of bytecode-to-native compilation on small devices, making it feasible within limited memory constraints.
Findings
Reduced size overhead by over 90%
Achieved 69% performance overhead reduction
Enabled larger program loading on sensor devices
Abstract
Many virtual machines exist for sensor nodes with only a few KB RAM and tens to a few hundred KB flash memory. They pack an impressive set of features, but suffer from a slowdown of one to two orders of magnitude compared to optimised native code, reducing throughput and increasing power consumption. Compiling bytecode to native code to improve performance has been studied extensively for larger devices, but the restricted resources on sensor nodes mean most modern techniques cannot be applied. Simply replacing bytecode instructions with predefined sequences of native instructions is known to improve performance, but produces code several times larger than the optimised C equivalent, limiting the size of programmes that can fit onto a device. This paper identifies the major sources of overhead resulting from this basic approach, and presents optimisations to remove most of the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
