Mon 5 - Sat 10 December 2022 Auckland, New Zealand
Mon 5 Dec 2022 16:30 - 17:00 at Seminar Room G100 - Session 3 Chair(s): Tony Hosking

JavaScript is increasingly used for the Internet of Things (IoT) on embedded systems.
However, JavaScript's memory footprint is a challenge,
because normal JavaScript virtual machines (VMs) do not fit into the small memory of IoT devices.
In part this is because a significant amount of memory is used by hidden classes,
which are used to represent JavaScript's dynamic objects efficiently.

In this research, we optimize the hidden class graph
to minimize their memory use.
Our solution collects the hidden class graph and related
information for an application in a profiling run, and optimizes
the graph offline.
We reduce the number of hidden
classes by avoiding introducing intermediate ones, for instance when properties are added one after another.
Our optimizations allow the VM to assign the most likely final hidden class to an object at its creation.
They also minimize re-allocation of storage for property values,
and reduce the polymorphism of inline caches.

We implemented these optimizations in a JavaScript VM, eJSVM, and found that
offline optimization can eliminate 61.9% of the hidden classes on average.
It also improves execution speed by
minimizing the number of hidden class transitions for an object
and reducing inline cache misses.

Mon 5 Dec

Displayed time zone: Auckland, Wellington change

15:30 - 17:00
Session 3VMIL at Seminar Room G100
Chair(s): Tony Hosking Australian National University
MMTk and The Case for Modular VM Development
Steve Blackburn Google and Australian National University
Profile Guided Offline Optimization of Hidden Class Graphs for JavaScript VMs in Embedded Systems
Tomoharu Ugawa University of Tokyo, Stefan Marr University of Kent, Richard Jones University of Kent