System and method for JIT memory footprint improvement for embedded java devices
First Claim
1. A computer implemented method of reclaiming memory occupied by Just-in-Time (JIT) compiled programs, said method comprising:
- tracking a JIT compiled program, the tracking recording tracking data that includes a method name corresponding to the JIT compiled program and an address range that corresponds to the JIT compiled program;
discarding one or more memory pages included in the address range;
branching to an address included in one of the discarded pages, the branching resulting in a page fault;
retrieving the method name corresponding to the address that resulted in the page fault; and
executing a method corresponding to the retrieved method name.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for reclaiming memory occupied by compiled code resulting from a Just-in-Time (JIT) compiler is provided. An address space used to store code resulting from a JIT compiler is memory mapped using a special filesystem. A map is maintained identify method name and corresponding JIT pages. When the memory manager needs more space, it requests that the special filesystem write the data from memory back to nonvolatile storage. The special filesystem acts as if the data was written. When the code is subsequently called, a page fault and an invalid operation exception occur and are handled. The data in the map is used to recompile the method to the same address space and the faulting instruction is re-executed.
-
Citations
20 Claims
-
1. A computer implemented method of reclaiming memory occupied by Just-in-Time (JIT) compiled programs, said method comprising:
-
tracking a JIT compiled program, the tracking recording tracking data that includes a method name corresponding to the JIT compiled program and an address range that corresponds to the JIT compiled program;
discarding one or more memory pages included in the address range;
branching to an address included in one of the discarded pages, the branching resulting in a page fault;
retrieving the method name corresponding to the address that resulted in the page fault; and
executing a method corresponding to the retrieved method name. - View Dependent Claims (2, 3, 4, 5, 6, 7, 15, 16, 17, 18, 19, 20)
-
-
8. An information handling system comprising:
-
one or more processors;
a memory accessible by the processors;
a nonvolatile storage device accessible by the processors;
a virtual machine that includes a Just-in-Time (JIT) compiler loaded from the nonvolatile storage device to the memory and executed by the processors;
a memory reclamation tool for reclaiming memory occupied by JIT compiled programs, the memory reclamation tool including software code effective to;
track a JIT compiled program, the tracking including software code effective to record tracking data that includes a method name corresponding to the JIT compiled program and an address range that corresponds to the JIT compiled program;
discard one or more memory pages included in the address range;
branch to an address included in one of the discarded pages resulting in a page fault;
retrieve, from the tracking data, the method name corresponding to the address that resulted in the page fault; and
execute a method corresponding to the retrieved method name. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A computer program product stored on a computer operable media for reclaiming memory occupied by Just-in-Time (JIT) compiled programs, said computer program product comprising:
-
means for tracking a JIT compiled program, the tracking recording tracking data that includes a method name corresponding to the JIT compiled program and an address range that corresponds to the JIT compiled program;
means for discarding one or more memory pages included in the address range;
means for branching to an address included in one of the discarded pages, the branching resulting in a page fault;
means for retrieving the method name corresponding to the address that resulted in the page fault; and
means for executing a method corresponding to the retrieved method name.
-
Specification