Thread-based memory management with garbage collection
US-2015006843-A1 · Jan 1, 2015 · US
US9740716B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9740716-B2 |
| Application number | US-201313972719-A |
| Country | US |
| Kind code | B2 |
| Filing date | Aug 21, 2013 |
| Priority date | Aug 21, 2013 |
| Publication date | Aug 22, 2017 |
| Grant date | Aug 22, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system and method for dynamically selecting a garbage collection algorithm based on the contents of heap regions. In accordance with an embodiment, a software application can be instrumented so that the system can place software objects allocated by the application, or by different parts of the application, into different regions of the heap. When garbage collection is invoked, the system can scan the heap, examine object statistics to determine if particular objects are, e.g., short-lived, long-lived, or some other type of object, and then use this information to determine which garbage collection algorithm to use with particular heap regions. In accordance with an embodiment, the system can identify regions as containing particular object types, for example, movable or non-movable object types, or object liveness, and use different garbage collection algorithms accordingly. Different garbage collection algorithms can be used with different regions, based on their content at a particular time.
Opening claim text (preview).
What is claimed is: 1. A system for garbage collection based on software objects stored in heap regions, the system comprising: a computing device which includes a processor, a virtual machine, and a heap for storage of compiled bytecode as software objects, and that enables one or more software applications to be executed thereon; wherein the virtual machine comprises a plurality of garbage collectors implementing different garbage collection methods and selected from a serial garbage collector, a parallel garbage collector, a parallel compacting garbage collector, a concurrent mark-sweep garbage collector, a copying garbage collector, and a non-moving garbage collector; wherein the heap comprises a plurality of regions for storing software objects; wherein each software object allocated by a software application is placed, by the virtual machine, into a region of the plurality of regions of the heap based on an instrumentation of the software application corresponding to the software object, including placement of particular software objects comprising compiled bytecode into different regions of the plurality of regions of the heap; wherein the virtual machine determines object statistics for each of the plurality of regions of the heap to determine object types therein; and wherein the virtual machine performs garbage collection on each region of the plurality of regions of the heap by selecting, based on the objects statistics for said each region of the plurality of regions of the heap, a selected garbage collector of the plurality of garbage collectors to use in said each region of the plurality of regions of the heap; and performing garbage collection on said each region of the plurality of regions of the heap using the selected garbage collector; wherein different garbage collectors of the plurality of garbage collectors are utilized for said different regions of the plurality of regions of the heap. 2. The system of claim 1 , wherein the software applications includes an application code that is instrumented so that the virtual machine determines, based on the instrumented code, to place software objects allocated by the software application, into the different regions of the plurality of regions of the heap. 3. The system of claim 2 , wherein the software application includes multiple different parts, and wherein each of the multiple different parts include instrumented code, so that the virtual machine determines, for each particular part of the software application, to place software objects allocated by the particular part of the software application into a particular different region of the plurality of regions of the heap. 4. The system of claim 1 , wherein the heap includes a first region of the plurality of regions that generally stores non-movable software objects and a second region of the plurality of regions that generally stores movable software objects, and wherein the virtual machine uses a different garbage collector of said plurality of garbage collectors with each of the first and second regions. 5. A method for garbage collection on a computing device which includes a processor, a virtual machine and a heap for storage of compiled bytecode as software objects, the method comprising: defining a plurality of regions in said heap; placing each software object allocated by a software application into one of said plurality or regions of the heap based on an instrumentation of the software application corresponding to the software object, including placement of particular software objects into different regions of the plurality of regions of the heap; providing in said virtual machine wherein a plurality of garbage collectors implementing different garbage collection methods and selected from a serial garbage collector, a parallel garbage collector, a parallel compacting garbage collector, a concurrent mark-sweep garbage collector, a copying garbage collector, and a non-moving garbage collector; determining, with said virtual machine, obiect statistics for each of the plurality of regions of the heap to determine object types therein; and performing garbage collection on each region of the plurality of regions of the heap by selecting, based on the object statistics for said each region of the plurality of regions of the heap, a selected garbage collector of the plurality of garbage collectors to use in said each region of the plurality of regions of the heap; and performing garbage collection on said each region of the plurality of regions of the heap using the selected garbage collector; wherein different garbage collectors of the plurality of garbage collectors are utilized for said different regions of the plurality of regions of the heap. 6. The method of claim 5 , wherein the software application includes an application code that is instrumented so that the virtual machine determines, based on the instrumented code, to place software objects allocated by the software application, into the different regions of the plurality of regions of the heap. 7. The method of claim 6 , wherein the software application includes multiple different parts, and wherein each of the multiple different parts include instrumented code, so that the virtual machine determines, for each particular part of the software application, to place software objects allocated by the particular part of the software application into a particular different region of the plurality of regions of the heap. 8. The method of claim 5 , wherein the heap includes a first region of the plurality of regions that generally stores non-movable software objects and a second region of the plurality of regions that generally stores movable software objects, and wherein the virtual machine uses a different garbage collector of the plurality of garbage collectors with each of the first and second regions. 9. A non-transitory computer readable storage medium, including instructions stored thereon for supporting garbage collection on a computing device which includes a processor, a virtual machine and a heap for storage of compiled bytecode as software objects, which instructions, when read and executed, cause the computing device to perform steps comprising: defining a plurality of regions in said heap; placing each software object allocated by a software application into one of said plurality or regions of the heap based on an instrumentation of the software application corresponding to the software object, including placement of particular software objects into different regions of the plurality of regions of the heap; providing in said virtual machine wherein a plurality of garbage collectors implementing different garbage collection methods and selected from a serial garbage collector, a parallel garbage collector, a parallel compacting garbage collector, a concurrent mark-sweep garbage collector, a copying garbage collector, and a non-moving garbage collector; determining, with said virtual machine, object statistics for each of the plurality of regions of the heap to determine object types therein; and performing garbage collection on each region of the plurality of regions of the heap by selecting, based on the object statistics for said each region of the plurality of regions of the heap, a selected garbage collector of the plurality of garbage collectors to use in said each region of the plurality of regions of the heap; and performing garbage collection on said each region of the plurality of regions of the heap using the selected garbage collector; wherein different garbage collectors of the plurality of garbage collectors are utilized for said different regions of the plurality of regions of the heap. 10. The non-tr
Hypervisors; Virtual machine monitors · CPC title
Garbage collection, i.e. reclamation of unreferenced memory · CPC title
Physics · mapped topic
the resource being the memory · CPC title
Physics · mapped topic
Related publications grouped by family.
Answers are generated from the same data shown on this page.