Garbage collection and other management of memory heaps

US9430153B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9430153-B2
Application numberUS-201414521006-A
CountryUS
Kind codeB2
Filing dateOct 22, 2014
Priority dateOct 22, 2014
Publication dateAug 30, 2016
Grant dateAug 30, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A memory heap management facility is provided that is able to perform various management tasks, including, but not limited to, garbage collection, compaction, and/or re-ordering of objects within a heap. One or more of these management tasks improve system performance by limiting movement of pages in and out of virtual memory. The garbage collection technique selectively performs garbage collection such that certain objects, such as old but live, infrequently referenced objects, are not garbage collected each time garbage collection is performed.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer system for facilitating management of memory heaps, said computer system comprising: a memory; and a processor in communications with the memory, wherein the computer system is configured to perform a method, said method comprising: selecting a heap section of a memory heap to be examined for garbage collection, the heap section comprising a plurality of groups, the plurality of groups defined such that groups include objects of particular types, a particular type being defined based on frequency of reference of the objects within a group; selecting one or more groups of the plurality of groups of the heap section to be examined for garbage collection, the selecting being based on the particular type of the one or more groups; determining whether garbage collection is to be performed for the selected one or more groups; and performing garbage collection on the selected one or more groups based on the determining indicating garbage collection is to be performed for the selected one or more groups, wherein the performing garbage collection comprises: selecting an object of a group of the one or more groups selected for garbage collection; determining whether the object is marked as reachable; returning memory of the object to a free list of memory, based on the determining indicating the object is not reachable; checking whether a reference indicator of the object is set, based on the determining indicating the object is marked as reachable; and moving the object from the group to another group of a particular type that differs from the particular type of the group, based on the checking indicating the reference indicator is not set. 2. The computer system of claim 1 , wherein the method further comprises: allocating objects in the memory heap, wherein the allocating comprises: selecting one heap section of a plurality of heap sections of the memory heap to be a selected heap section to receive an object to be placed in the memory heap, wherein the selecting comprises: determining whether one or more groups of a selected particular type in a chosen heap section have space for the object; selecting the chosen heap section as the selected heap section, based on the one or more groups of the selected particular type in the chosen heap section having space for the object; and selecting another heap section as the selected heap section based on determining the one or more groups of the selected particular type in the chosen heap section lack space for the object; and selecting one group of the one or more groups of the selected heap section in which to include the object. 3. The computer system of claim 1 , further comprising: determining whether a selected heap section of a plurality of heap sections of the memory heap is to be examined for movement of one or more objects from one group of the selected heap section to another group of the selected heap section; checking one or more objects of the one group, based on the determining indicating the selected heap section is to be examined to determine whether the one or more objects are to be moved; and moving at least one object of the one or more objects to the another group based on the checking indicating the one or more objects are to be moved. 4. The computer system of claim 1 , further comprising swapping one object of a first group of a selected heap section of a plurality of heap sections of the memory heap with another object of a second group of the selected heap section. 5. The computer system of claim 4 , wherein the swapping comprises: determining a median reference count for objects of the selected heap section; comparing a reference count of the one object with the median reference count; and swapping the one object with the another object in the second group based on the comparing, wherein the second group is, based on the comparison indicating the reference count is below the median reference count, of a type characterized as having more frequently referenced objects as compared to the objects of the first group, and the second group is, based on the comparison indicating the reference count is above the median reference count, of a type characterized as having less frequently referenced objects as compared to the objects of the first group. 6. The computer system of claim 3 , wherein the another group is defined as including objects that are referenced less frequently than the objects of the one group. 7. The computer system of claim 1 , wherein the particular type of the one or more groups selected to be examined is a type of frequently referenced objects, the frequently referenced being determined with reference to a defined value of referencing. 8. The computer system of claim 1 , wherein the selecting the one or more groups for garbage collection comprises selecting less than all groups of the plurality of groups for garbage collection. 9. The computer system of claim 1 , wherein the performing garbage collection comprises performing garbage collection on an object of the heap section independent of status of the object in another heap section. 10. A computer program product for facilitating management of memory heaps, said computer program product comprising: a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising: selecting a heap section of a memory heap to be examined for garbage collection, the heap section comprising a plurality of groups, the plurality of groups defined such that groups include objects of particular types, a particular type being defined based on frequency of reference of the objects within a group; selecting one or more groups of the plurality of groups of the heap section to be examined for garbage collection, the selecting based on the particular type of the one or more groups; determining whether garbage collection is to be performed for the selected one or more groups; and performing garbage collection on the selected one or more groups based on the determining indicating garbage collection is to be performed for the selected one or more groups, wherein the performing garbage collection comprises: selecting an object of a group of the one or more groups selected for garbage collection; determining whether the object is marked as reachable; returning memory of the object to a free list of memory, based on the determining indicating the object is not reachable; checking whether a reference indicator of the object is set, based on the determining indicating the object is marked as reachable; and moving the object from the group to another group of a particular type that differs from the particular type of the group, based on the checking indicating the reference indicator is not set. 11. The computer program product of claim 10 , wherein the particular type of the one or more groups selected to be examined is a type of frequently referenced objects, the frequently referenced being determined with reference to a defined value of referencing. 12. The computer program product of claim 10 , wherein the selecting the one or more groups for garbage collection comprises selecting less than all groups of the plurality of groups for garbage collection. 13. The computer program product of claim 10 , wherein the method further comprises: allocating objects in the memory heap, wherein the allocating comprises: selecting one heap section of a plurality of heap sections of the memory heap to be a selected heap section to receive an object to be placed in the memory heap, wherein the selecting

Assignees

Inventors

Classifications

  • Addressing or allocation; Relocation (program address sequencing G06F9/00; arrangements for selecting an address in a digital store G11C8/00) · CPC title

  • Resource optimization · CPC title

  • Garbage collection, i.e. reclamation of unreferenced memory · CPC title

  • Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators · CPC title

  • G06F3/0608Primary

    Saving storage space on storage systems · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9430153B2 cover?
A memory heap management facility is provided that is able to perform various management tasks, including, but not limited to, garbage collection, compaction, and/or re-ordering of objects within a heap. One or more of these management tasks improve system performance by limiting movement of pages in and out of virtual memory. The garbage collection technique selectively performs garbage collec…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F12/0253. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 30 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).