Optimizing for Page Sharing in Virtualized Java Virtual Machines
AssigneeVMware, Inc.
InventorBenjamin J. CORRIE
Life of this patent
Estimating the term…
Abstract
Methods, systems, and computer programs manage memory of a runtime environment executing on a virtual machine. A runtime environment, such as a Java Virtual Machine, may deterministically arrange immutable data within memory such that a hypervisor may perform page sharing on the immutable data. The runtime environment may page-align the immutable data within memory. The runtime environment may further store the immutable within memory using self-referenced or self-relative pointers.
Claims15
A method for managing memory of a runtime environment executing in a virtual machine, the method comprising:
- generating immutable data associated with execution of an application in the runtime environment;
- deterministically arranging the immutable data within a first memory page assigned to the runtime environment;
- and
- notifying a virtualization layer that the first memory page containing the immutable data is a page sharing candidate.
A computer system for executing an application on a host computer executing one or more virtual machines therein, the computer system comprising
- a system memory comprising a plurality of machine memory pages;
- and
- a virtualization layer configured to manage page sharing of the plurality of machine memory pages between the one or more virtual machines;
- and
- at least one runtime environment executing in a first virtual machine, the runtime environment having immutable data arranged within one or more machine memory pages associated with the runtime environment such that the one or more machine memory pages may be shared with a process executing in a second virtual machine, wherein the immutable data is associated with execution of an application in the runtime environment.
A non-transitory computer-readable storage medium comprising instructions that, when executed in a computing device, manage memory of a runtime environment executing in a virtual machine by performing the steps of:
- generating immutable data associated with execution of an application in the runtime environment;
- deterministically arranging the immutable data within a first memory page assigned to the runtime environment;
- and
- notifying a virtualization layer that the first memory page containing the immutable data is a page sharing candidate.
Dependencies are inferred from the claim text.