Organization of a small object area and a large object area in a java heap
AssigneeInternational Business Machines Corporation
InventorsBhaktavatsal Maram, Vinod Nalla, Bipin Patil
Life of this patent
Estimating the term…
Abstract
A memory heap is allocated to a contiguous range of memory. One end of the heap is designated as a small object area. The other end of the heap is designated as a large object area. When the two object areas grow, the small object area grows inward within the heap toward the large object area, and the large object area grows inward within the heap toward the small object area.
Claims22
A method of managing multiple object areas in a memory heap, comprising:
- allocating a memory heap as a contiguous range of memory;
- allocating a small object area within the memory heap having an initial start at a first end of the memory heap;
- allocating a large object area within the memory heap having an initial start at a second end of the memory heap opposite the first end such that the small object area and the large object area grow in opposite directions inward within the memory heap;
- allocating a gap of unallocated memory comprising an unallocated portion of the small object area and an unallocated portion of the large object area;
- modifying the ratio of the small object area to the large object area in the memory heap by moving a boundary between the large object area and the small object area within the gap;
- and
- performing allocations into the memory heap based upon a predetermined allocation policy such that the large object area is reserved for the allocation of large objects.
Computer-readable hardware with an executable program for managing multiple object areas in a memory heap, wherein the program instructs a processor to perform:
- allocating, with the processor, a memory heap as a contiguous range of memory;
- allocating, with the processor, a small object area within the memory heap having an initial start at a first end of the memory heap;
- allocating, with the processor, a large object area within the memory heap having an initial start at a second end of the memory heap opposite the first end such that the small object area and the large object area grow in opposite directions inward within the memory heap;
- allocating a gap of unallocated memory comprising an unallocated portion of the small object area and an unallocated portion of the large object area;
- modifying the ratio of the small object area to the large object area in the memory heap by moving a boundary between the large object area and the small object area within the gap;
- and
- performing, with the processor, allocations into the memory heap based upon a predetermined allocation policy such that the large object area is reserved for the allocation of large objects.
Dependencies are inferred from the claim text.