Memory object pretenuring

US9507713B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9507713-B1
Application numberUS-201414492845-A
CountryUS
Kind codeB1
Filing dateSep 22, 2014
Priority dateSep 22, 2014
Publication dateNov 29, 2016
Grant dateNov 29, 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 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.

First claim

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

Assignees

Inventors

Classifications

  • Generational garbage collection · CPC title

  • Performance improvement · CPC title

  • Conservative garbage collection · CPC title

  • Garbage collection, i.e. reclamation of unreferenced memory · 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 US9507713B1 cover?
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 include…
Who is the assignee on this patent?
Google Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/0276. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). 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).