Managing objects stored in memory
First Claim
1. A method comprising:
- identifying a first object in a heap, wherein the heap is accessed by a plurality of mutator threads executing within a first plurality of operating system processes and each mutator thread in the plurality has a corresponding garbage collection thread from a plurality of garbage collection threads executing within a second plurality of operating system processes;
determining, based on a root pointer associated with a first mutator thread from the plurality of mutator threads, that the first object is a reachable object;
determining, based on a marking phase of a garbage collection cycle, that a first range of memory locations in the heap does not contain any reachable object;
receiving an allocation request from a second mutator thread from the plurality of mutator threads; and
allocating, responsive to the allocation request, a first free chunk of memory, including at least a part of the first range of memory locations, to the second mutator thread.
1 Assignment
0 Petitions
Accused Products
Abstract
In one example in accordance with the present disclosure, a method for managing objects stored in memory may include identifying a first object in a heap. The heap may be accessed by a plurality of mutator threads executing within a first plurality of operating system processes. The method may also include determining that the first object is a reachable object and determining that a first range of memory locations in the heap does not contain any reachable object. The method may also include receiving an allocation request from a second mutator thread from the plurality of mutator threads and allocating a first free chunk of memory including at least a part of the first range of memory locations to the second mutator thread.
6 Citations
15 Claims
-
1. A method comprising:
-
identifying a first object in a heap, wherein the heap is accessed by a plurality of mutator threads executing within a first plurality of operating system processes and each mutator thread in the plurality has a corresponding garbage collection thread from a plurality of garbage collection threads executing within a second plurality of operating system processes; determining, based on a root pointer associated with a first mutator thread from the plurality of mutator threads, that the first object is a reachable object; determining, based on a marking phase of a garbage collection cycle, that a first range of memory locations in the heap does not contain any reachable object; receiving an allocation request from a second mutator thread from the plurality of mutator threads; and allocating, responsive to the allocation request, a first free chunk of memory, including at least a part of the first range of memory locations, to the second mutator thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system comprising:
-
a notifier to notify a first mutator process thread belonging to a plurality of mutator process threads that a garbage collection cycle has begun, wherein each mutator process thread in the plurality has access to objects located in a heap in a memory; a process handler to pause normal operation of the first mutator process thread so that the garbage collection cycle can proceed, wherein the normal operation is paused by a time period that is not proportional to a total number of live objects in the heap; an object identifier to identify a first object in the heap, the object belonging to the total number of live objects in the heap; an object reachability determiner to determine, based on a root pointer associated with a first mutator thread from the plurality of mutator threads, that the first object is a reachable object; a memory reachability determiner to determine that a first range of memory locations in the heap does not contain any reachable object; and a memory identifier to identify a first free chunk of memory including at least a part of the first range of memory locations. - View Dependent Claims (12)
-
-
13. A non-transitory machine-readable storage medium comprising instructions executable by a processor of a computing device, the machine-readable storage medium comprising instructions to:
-
identify a first object in a heap, wherein the heap is accessed by a plurality of mutator threads and a plurality of garbage collection threads; determine based on a root pointer associated with a first mutator thread from the plurality of mutator threads that the first object is a reachable object; determine based on a marking phase of a garbage collection cycle performed by a first garbage collection thread belonging to the plurality of garbage collection threads that a first range of memory locations in the heap does not contain any reachable object; increment a shared counter upon completion of the marking phase by the first garbage collection thread; and identify a first free chunk of memory including at least a part of the first range of memory locations. - View Dependent Claims (14, 15)
-
Specification