Dynamic tuning of garbage threshold to reduce unreclaimable garbage overhead
US-2024126689-A1 · Apr 18, 2024 · US
US9355029B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9355029-B2 |
| Application number | US-201313930931-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 28, 2013 |
| Priority date | Jun 28, 2013 |
| Publication date | May 31, 2016 |
| Grant date | May 31, 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.
Systems and methods for thread-based memory management may include activating a processing thread. The memory may include a first region and a second region with the first region having several segments. A segment of memory may be allocated for the processing thread. Data associated with an object may be stored in the segment. At the end of processing by the processing thread, a garbage collection process may be performed by the processing thread on the segment allocated to the processing thread.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method for managing the allocation of memory comprising: activating a processing thread; allocating memory for the processing thread, wherein the allocated memory includes a first region having a plurality of segments; determining if data associated with an object utilized by the processing thread is to be stored in the first region of the allocated memory; determining if the data associated with the object can be stored in a first segment of the plurality of segments; storing the data associated with the object in the first segment in response to the determination that the data associated with the object can be stored in the first segment; and the processing thread including code performing a garbage collection process on the allocated first segment prior to termination of the processing thread. 2. The method of claim 1 further comprising: allocating a second segment of the plurality of segments in response to a determination that the data associated with the object cannot be stored in the first segment; dividing the data associated with the object into a first portion of the data associated with the object and a second portion of the data associated with the object; and storing the first portion of the data associated with the object in the first segment and storing the second portion of the data associated with the object in the second segment of the plurality of segments. 3. The method of claim 2 further comprising: determining if a number of segments allocated to the processing thread exceed a predetermined value. 4. The method of claim 3 further comprising: performing a garbage collection process on the first segment and the second segments if the number of segments allocated to the processing thread exceed the predetermined value. 5. The method of claim 3 further comprising: terminating the processing thread if the number of segments allocated to the processing thread exceed the predetermined value. 6. The method of claim 1 further comprising: determining if the data associated with the object can be stored in a second region of the allocated memory if the data associated with the object cannot be stored in the first region; allocating the portion of the second region for storing the data associated with the object in response to the determination that the data associated with the object can be stored in the second region and in response to the determination that the data associated with the object cannot be stored in the first region; and storing the data associated with the object at the allocated portion of the second region in response to the determination that the data associated with the object cannot be stored in the first region. 7. The method of claim 1 further comprising: determining if the data associated with the object can be stored in a portion of a second region of the allocated memory in response to the determination that the data associated with the object cannot be stored in the first segment; and the processing thread performing a garbage collection process on a portion of the second region if the data associated with the object cannot be stored in the second region. 8. The method of claim 7 further comprising: determining if the data associated with the object can be stored in a portion of the second region after the garbage collection process; allocating the portion of the second region for storing the data associated with the object in response to the determination that the data associated with the object can be stored in the portion; and storing the data associated with the object at the allocated portion of the second region. 9. The method of claim 1 , wherein the garbage collection process is a mark and sweep process. 10. The method of claim 1 , wherein the garbage collection process is a copying collection process. 11. A system comprising: a memory having a first region that includes a plurality of segments; and a storage device storing instructions that, when executed by a processing module of the system, cause the processing module to perform operations comprising: activating a processing thread; allocating a first segment of the plurality of segments for the processing thread, determining if data associated with an object is to be stored in the memory, determining if the data associated with the object can be stored in the allocated first segment, determining if the plurality of segments has an allocatable second segment in response to the determination that the data associated with the object cannot be stored in the allocated first segment, if the data associated with the object cannot be stored in the allocated first segment and the first region has an allocatable second segment: allocating the second segment of the plurality of segments for the processing thread, and storing the data associated with the object at the allocated portion of the second segment, and the processing thread including code performing a garbage collection process on the first segment and the second segment prior to termination of the processing thread. 12. The system of claim 11 , wherein the operations further comprise: determining if a number of segments allocated to the processing thread exceed a predetermined value. 13. The system of claim 12 , wherein the operations further comprise: performing a garbage collection process on the first segment and the second segment if the number of segments allocated to the processing thread exceed the predetermined value. 14. The system of claim 12 , wherein the operations further comprise: terminating the processing thread if the number of segments allocated to the processing thread exceed the predetermined value. 15. The system of claim 11 , wherein the operations further comprise: if the data associated with the object cannot be stored in the allocated first segment and the first region does not have an allocatable second segment: determining if the data associated with the object can be stored in a second region of the memory, allocating the portion of the second region for storing the data associated with the object, and storing the data associated with the object at the allocated portion of the second region. 16. A non-transitory computer-readable storage device storing instructions that, when executed by a processing module, cause the processing module to perform operations comprising: activating a processing thread; allocating a memory for the processing thread, wherein the allocated memory includes a first region having a plurality of segments to store data for objects to be created during the processing performed by the processing thread; storing data associated with an object in a first segment of the plurality of segments; the processing thread including code performing a garbage collection process on the plurality of segments prior to termination of the processing thread; and releasing the plurality of segments. 17. The non-transitory computer-readable storage device of claim 16 , storing instructions to perform operations further comprising: determining if a number of segments of the plurality of segments allocated to the processing thread exceed a predetermined value; and terminating the processing thread if the number of segments of the plurality of segments allocated to the processing thread exceed the predetermined value. 18. The non-transitory computer-readable storage device of claim 16 , storing instructions to perform operations further comprising: determ
Garbage collection, i.e. reclamation of unreferenced memory · CPC title
Free address space management · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.