Removal of garbage data from a database
US-2016342630-A1 · Nov 24, 2016 · US
US9507713B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-9507713-B1 |
| Application number | US-201414492845-A |
| Country | US |
| Kind code | B1 |
| Filing date | Sep 22, 2014 |
| Priority date | Sep 22, 2014 |
| Publication date | Nov 29, 2016 |
| Grant date | Nov 29, 2016 |
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 computer-implemented method can include receiving a set of software instructions for execution by a computing device and compiling the set of software instructions to generate a set of executable instructions. The compiling can include identifying a first memory object allocation instruction. The method can also include executing the set of executable instructions, where the executing includes allocating, in a young garbage collection generation, a plurality of memory objects with the first memory object allocation instruction. The method can further include determining a survival rate of the plurality of memory objects allocated by the first memory object allocation instruction. Responsive to the survival rate being larger than a survival rate threshold, the method can include replacing, in the set of executable instructions, the first memory object allocation instruction with a second memory object allocation instruction that is configured to directly allocate memory objects in an old garbage collection generation.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method comprising: receiving, at a computing device, a set of software instructions for execution by the computing device; compiling the set of software instructions to generate a set of executable instructions, the compiling including identifying a first memory object allocation instruction; executing, by the computing device, the set of executable instructions, the executing including allocating, in a young garbage collection generation, a plurality of memory objects with the first memory object allocation instruction; determining a survival rate of the plurality of memory objects allocated by the first memory object allocation instruction; determining a count of a number of memory objects allocated by the first memory allocation instruction; and responsive to the survival rate being larger than a survival rate threshold and the count of the number of memory objects allocated by the first memory allocation instruction being larger than an activity rate threshold, replacing, in the set of executable instructions, the first memory object allocation instruction with a second memory object allocation instruction that is configured to directly allocate memory objects in an old garbage collection generation. 2. The computer-implemented method of claim 1 , wherein: the compiling the set of software instructions to generate the set of executable instructions is performed by a first compiler of the computing device; and the replacing the first memory allocation instruction with the second memory allocation instruction is performed by a second compiler of the computing device. 3. The computer-implemented method of claim 1 , further comprising: responsive to the identifying the first memory allocation instruction, allocating a bookkeeping memory object configured to maintain the count of the number of memory objects allocated by the first memory object allocation instruction and maintain a count of a number of memory objects allocated by the first memory object allocation instruction that are active during a garbage collection process, the survival rate being determined based on the count of allocated memory objects and the count of memory objects that are active during the garbage collection process. 4. The computer-implemented method of claim 3 , wherein allocating an object of the plurality of memory objects includes allocating a shadow object including a pointer to the bookkeeping memory object, the shadow object being used, during the garbage collection process, to update the count of memory objects that are active during the garbage collection process. 5. The computer-implemented method of claim 3 , further comprising, after replacing the first memory allocation instruction with the second memory allocation instruction, resetting, for a third memory allocation instruction, a count of allocated memory objects and a count of active memory objects. 6. The computer-implemented method of claim 1 , further comprising: determining, by the computing device, that a survival rate of old garbage collection generation memory objects associated with the set of executable instructions is below an old generation survival rate threshold; and responsive to the determination that the survival rate of the old garbage collection generation memory objects is below the old generation survival rate threshold, replacing the second memory allocation instruction with the first memory allocation instruction. 7. The computer-implemented method of claim 1 , further comprising: responsive to the survival rate being less than or equal to the survival rate threshold, replacing, in the set of executable instructions, the first memory object allocation instruction with a second memory object allocation instruction that is configured to directly allocate memory objects in the young garbage collection generation. 8. A non-transitory recordable storage medium having instructions recorded and stored thereon, the instructions, when executed by a computing device, cause the computing device to: receive a set of software instructions for execution by the computing device; compile the set of software instructions to generate a set of executable instructions, the compiling including identifying a first memory object allocation instruction; execute the set of executable instructions, the executing including allocating, in a young garbage collection generation, a plurality of memory objects with the first memory object allocation instruction; determine a survival rate of the plurality of memory objects allocated by the first memory object allocation instruction; determine a count of a number of memory objects allocated by the first memory allocation instruction; and responsive to the survival rate being larger than a survival rate threshold and the count of the number of memory objects allocated by the first memory allocation instruction being larger than an activity rate threshold, replace, in the set of executable instructions, the first memory object allocation instruction with a second memory object allocation instruction that is configured to directly allocate memory objects in an old garbage collection generation. 9. The non-transitory recordable storage medium of claim 8 , wherein: the compiling the set of software instructions to generate the set of executable instructions is performed by a first compiler of the computing device; and the replacing the first memory allocation instruction with the second memory allocation instruction is performed by a second compiler of the computing device. 10. The non-transitory recordable storage medium of claim 8 , wherein the instructions, when executed by the computing device, further cause the computing device to: responsive to the identifying the first memory allocation instruction, allocate a bookkeeping memory object configured to maintain the count of the number of memory objects allocated by the first memory object allocation instruction and maintain a count of a number of memory objects allocated by the first memory object allocation instruction that are active during a garbage collection process, the survival rate being determined based on the count of allocated memory objects and the count of memory objects that are active during the garbage collection process. 11. The non-transitory recordable storage medium of claim 10 , wherein allocating an object of the plurality of memory objects includes allocating a shadow object including a pointer to the bookkeeping memory object, the shadow object being used, during the garbage collection process, to update the count of memory objects that are active during the garbage collection process. 12. The non-transitory recordable storage medium of claim 10 , wherein the instructions, when executed by the computing device, further cause the computing device to, after replacing the first memory object allocation instruction with the second memory object allocation instruction, reset, for a third memory object allocation instruction, a count of allocated memory objects and a count of active memory objects. 13. The non-transitory recordable storage medium of claim 8 , wherein the instructions, when executed by the computing device, further cause the computing device to: determine that a survival rate of old garbage collection generation memory objects associated with the set of executable instructions is below an old generation survival rate threshold; and responsive to the determination that the survival rate of the old garbage collection generation memory objects is below the old generation survival rate threshold, replace the second memory allocatio
Generational garbage collection · CPC title
Performance improvement · CPC title
Conservative garbage collection · CPC title
Garbage collection, i.e. reclamation of unreferenced memory · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.