TL;DR
This paper introduces an adaptive technique for optimizing value class representations in virtual machines, reducing memory consumption and improving execution speed by compressing common usage patterns.
Contribution
It presents a novel method to detect and compress frequent value object patterns, enabling more efficient inlined memory representations in virtual machines.
Findings
Memory usage was significantly reduced in benchmarks.
Execution time improved across multiple micro-benchmarks.
The approach is effective in a prototype and Racket implementation.
Abstract
The performance of value classes is highly dependent on how they are represented in the virtual machine. Value class instances are immutable, have no identity, and can only refer to other value objects or primitive values and since they should be very lightweight and fast, it is important to optimize them carefully. In this paper we present a technique to detect and compress common patterns of value class usage to improve memory usage and performance. The technique identifies patterns of frequent value object references and introduces abbreviated forms for them. This allows to store multiple inter-referenced value objects in an inlined memory representation, reducing the overhead stemming from meta-data and object references. Applied to a small prototype and an implementation of the Racket language, we found improvements in memory usage and execution time for several micro-benchmarks.
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
