IP Library Granted Patent US 12,561,239
Granted Patent B1
US 12,561,239 · App. 19/021,870 · Granted Feb 24, 2026

Techniques for concurrent multi-generation garbage collection

Inventors: Erik Österlund (Vasterhaninge, SE); Axel Boldt-Christmas (Stockholm, SE); Stefan Mats Rikard Karlsson (Nacka, SE)
Assignee: Oracle International Corporation
G06F12/0253
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,561,239
App. No.
19/021,870
Granted
Feb 24, 2026
Kind
B1
Abstract

Techniques are disclosed for performing a garbage collection process that processes reference objects in multiple generations of a memory area while a program instance is concurrently manipulating runtime objects in the memory area. During one phase of concurrent operations, the system applies one rule set for processing reference objects in one generation of the memory area. During another phase of concurrent operations, the system applies another rule set for processing reference objects residing in another generation of the memory area. To enable the performance of the one phase of concurrent operations and the other phase of concurrent operations at the same time, the system tracks the accessibility of a given runtime object with respect to both of the one generation and the other generation. The system tracks the given runtime object's accessibility with respect to both generations by embedding metadata into a pointer that refers to the given runtime object.

Claims (116)

1 . One or more non-transitory computer-readable media comprising instructions that, when executed by one or more hardware processors, cause performance of operations comprising:

performing a first set of garbage operations targeting a first section of a memory area, the first set of garbage collection operations comprising:

identifying a first reference object that holds a first reference to a first referent, the first section of the memory area comprising the first reference object and the first referent, wherein the first reference is classified as a second reference type;

based, at least in part, on determining that the first reference object is classified as a first type of reference object, refraining from adding the first reference object to a first list of one or more reference objects;

breaking a first set of one or more references of the second reference type that are respectively held by a first set of one or more reference objects comprised within the first list of one or more reference objects, wherein the first set of one or more references does not comprise the first reference to the first referent;

performing a second set of garbage collection operations targeting a second section of the memory area, the second set of garbage collection operations comprising operations comprising:

identifying a second reference object that holds a second reference to a second referent, the second section of the memory area comprising the second reference object and the second referent, wherein (a) the second reference object is classified as the first type of reference object and (b) the second reference is classified as the second reference type;

based, at least in part, on at least one of: (a) a first timestamp corresponding to a prior set of garbage collection operations targeting the second section of the memory area or (b) a second timestamp corresponding to the second reference object being used to access the second referent, adding the second reference object to a second list of one or more reference objects;

breaking a second set of one or more references of the second reference type that are respectively held by a second set of one or more reference objects comprised within the second list of one or more reference objects, wherein the second set of one or more references comprises the second reference to the second referent; and

updating the first timestamp, wherein the first timestamp subsequently corresponds to the second set of garbage collection operations targeting the second section of the memory area.

2 . The one or more non-transitory computer-readable media of claim 1 , wherein at least a first subset of the first set of garbage collection operations are performed while a first set of runtime objects comprised within the first section of the memory area are being concurrently manipulated by at least one program thread that is executing a program instance, wherein at least a second subset of the second set of garbage collection operations are performed while a second set of runtime objects comprised within the second section of the memory area are being concurrently manipulated by the at least one program thread that is executing the program instance, wherein the first referent is not accessible through a first chain of one or more references of a first reference type, wherein the second referent is not accessible through a second chain of one or more references of the first reference type, wherein the first reference type is a strong reference type, wherein the second reference type is a non-strong reference type, and wherein the first type of reference object is a soft type of reference object.

3 . The one or more non-transitory computer-readable media of claim 1 , wherein the operations further comprise:

prior to breaking the first set of one or more references of the second reference type:

identifying a third reference object that holds a third reference to a third referent, the first section of the memory area comprising the third reference object and the third referent, wherein the third reference is classified as the second reference type;

based, at least in part, on determining that (a) the third reference object is a second type of reference object and (b) the third referent is not reachable through a chain of one or more references of a first reference type, adding the third reference object to the first list of one or more reference objects;

identifying a fifth reference object that holds a fifth reference to a fifth referent, the first section of the memory area comprising the fifth reference object and the fifth referent, wherein (a) the fifth reference is classified as the second reference type and (b) the fifth reference object is classified as the second type of reference object;

based, at least in part, on determining that the fifth referent is strongly reachable through a fifth chain of one or more references of the first reference type, refraining from adding the fifth reference object to the first list of one or more reference objects;

prior to breaking the second set of one or more references of the second reference type:

identifying a fourth reference object that holds a fourth reference to a fourth referent, the second section of the memory area comprising the fourth reference object and the fourth referent, wherein (a) the fourth reference object is classified as the first type of reference object and (b) the fourth reference is classified the second reference type; and

based, at least in part, on at least one of: (a) the first timestamp corresponding to the prior set of garbage collection operations targeting the second section of the memory area or (b) a fourth timestamp corresponding to the fourth reference object being used to access the fourth referent, refraining from adding the fourth reference object to the second list of one or more reference objects.

4 . The one or more non-transitory computer-readable media of claim 1 , wherein the operations further comprise:

based, at least in part, on a first level of memory pressure in the memory area, selecting a first policy for processing reference objects, wherein (a) the first set of garbage collection operations are performed pursuant to the first policy for processing reference objects and (b) the second set of garbage collection operations are preformed pursuant to the first policy for processing reference objects;

subsequent to the first set of garbage collection operations and the second set of garbage collection operations:

based, at least in part, on a second level of memory pressure in the memory area, selecting a second policy for processing reference objects;

pursuant to the second policy for processing reference objects, performing a third set of garbage collection operations targeting the first section of the memory area, the third set of garbage collection operations comprising:

identifying a third reference object that holds a third reference to a third referent, the first section of the memory area comprising the third reference object and the third referent, wherein (a) the third reference object is classified as the first type of reference object and (b) the third reference is classified as the second reference type;

based, at least in part, on determining that the third referent is not reachable through a third chain of one or more references of a first reference type, adding the third reference object to a third list of one or more reference objects;

breaking a third set of one or more references of the second reference type that are respectively held by a third set of one or more reference objects comprised within the third list of one or more reference objects, wherein the third set of one or more references comprises the third reference;

pursuant to the second policy for processing reference objects, performing a fourth set of garbage collection operations targeting the second section of the memory area, the fourth set of garbage collection operations comprising:

identifying a fourth reference object that holds a fourth reference to a fourth referent, the first section of the memory area comprising the fourth reference object and the fourth referent, wherein the fourth reference is classified as the second reference type;

based, at least in part, on determining that the fourth referent is not reachable through a fourth chain of references of the first reference type, adding the fourth reference object to a fourth list of one or more reference objects;

breaking a fourth set of one or more references of the second reference type that are respectively held by a fourth set of one or more reference objects comprised within the fourth list of one or more reference objects, wherein the fourth set of one or more references comprises the fourth reference; and

updating the first timestamp corresponding to the prior set of garbage collection operations targeting the second section of the memory area, wherein the first timestamp subsequently corresponds to the fourth set of garbage collection operations targeting the second section of the memory area.

5 . The one or more non-transitory computer-readable media of claim 1 , wherein at least a first subset of the first set of garbage collection operations are performed while a first set of runtime objects comprised within the first section of the memory area are being concurrently manipulated by at least one program thread that is executing a program instance, wherein at least a second subset of the second set of garbage collection operations are performed while a second set of runtime objects comprised within the second section of the memory area are being concurrently manipulated by the at least one program thread that is executing the program instance, wherein at least a third subset of the first set of garbage collection operations are performed at the same time as at least a fourth subset of the second set of garbage collection, wherein the first section of the memory area is a young generation of the memory area, wherein the second section of the memory area is an old generation of the memory area, wherein the first reference is implemented in memory, at least in part, by a first pointer, wherein the first pointer comprises a first address associated with the first referent; wherein the second reference is implemented in memory, at least in part, by a second pointer, wherein the second pointer comprises a second address associated with the second referent.

6 . The one or more non-transitory computer-readable media of claim 5 , wherein the operations further comprise:

based, at least in part, on determining that the first referent is at least one: (a) linked to a first root object comprised within the first section of the memory area by a first chain of one or more references originating from the first root object or (b) accessible through a first final reference object, storing a first value to a first set of bits comprised within the first pointer; and

based, at least in part, on determining that the second referent is at least one: (a) linked to a second root object comprised within the second section of the memory area by a second chain of one or more references originating from the second root object or (b) accessible through a second final reference object, storing a second value to a second set of bits comprised within the second pointer.

7 . The one or more non-transitory computer-readable media of claim 6 , wherein the first referent is promoted from the first section of the memory area to the second section of the memory area, wherein the first referent is the second referent, wherein the first pointer is the second pointer, and wherein the first set of bits is not the second set of bits.

8 . The one or more non-transitory computer-readable media of claim 1 , wherein the operations further comprise:

accessing a reference to a runtime object, the memory area comprising the runtime object, wherein the reference is implemented in memory, at least in part, by a pointer comprising a binary address associated with the runtime object;

performing, during the first set of garbage collection operations, at least one of:

responsive to determining that the runtime object is at least one of: (a) linked to a first root object comprised within the first section of the memory area by a first chain of one or more references originating from the first root object or (b) accessible through a first final reference object, storing a first value to a first set of one or more bits comprised within the pointer; or

responsive to determining at least one of: (a) that the first chain of one or more references does not comprise a third reference that is classified as the second reference type or (b) the runtime object is accessible through a third chain of one or more references of a first reference type linking the runtime object to the first root object or a third root object comprised within the first section of the memory area, storing a second value to a second set of one or more bits comprised within the pointer; and

performing, during the second set of garbage collection operations, at least one of:

responsive to determining that the runtime object is at least one of: (a) accessible through a second chain of one or more references linking the runtime object to a second root object comprised within the second section of the memory area or (b) accessible through a second final reference object, storing a third value to a third set of one or more bits comprised within the pointer; or

responsive to determining at least one of: (a) that the second chain of one or more references does not comprise a fourth reference of the second reference type or (b) the runtime object is accessible through a fourth chain of one or more references of the first reference type linking the runtime object to the second root object or a fourth root object comprised within the second section of the memory area, storing a fourth value to a fourth set of one or more bits comprised within the pointer.

9 . A method comprising:

performing a first set of garbage collection operations targeting a first section of a memory area, the first set of garbage collection operations comprising:

identifying a first reference object that holds a first reference to a first referent, the first section of the memory area comprising the first reference object and the first referent, wherein the first reference is classified as a second reference type;

based, at least in part, on determining that the first reference object is classified as a first type of reference object, refraining from adding the first reference object to a first list of one or more reference objects;

breaking a first set of one or more references of the second reference type that are respectively held by a first set of one or more reference objects comprised within the first list of one or more reference objects, wherein the first set of one or more references does not comprise the first reference to the first referent;

performing a second set of garbage collection operations targeting a second section of the memory area, the second set of garbage collection operations comprising:

identifying a second reference object that holds a second reference to a second referent, the second section of the memory area comprising the second reference object and the second referent, wherein (a) the second reference object is classified as the first type of reference object and (b) the second reference is classified as the second reference type;

based, at least in part, on at least one of: (a) a first timestamp corresponding to a prior set of garbage collection operations targeting the second section of the memory area or (b) a second timestamp corresponding to the second reference object being used to access the second referent, adding the second reference object to a second list of one or more reference objects;

breaking a second set of one or more references of the second reference type that are respectively held by a second set of one or more reference objects comprised within the second list of one or more reference objects, wherein the second set of one or more references comprises the second reference to the second referent; and

updating the first timestamp, wherein the first timestamp subsequently corresponds to the second set of garbage collection operations targeting the second section of the memory area,

wherein the method is performed by at least one device including a hardware processor.

10 . The method of claim 9 , wherein at least a first subset of the first set of garbage collection operations are performed while a first set of runtime objects comprised within the first section of the memory area are being concurrently manipulated by at least one program thread that is executing a program instance, wherein at least a second subset of the second set of garbage collection operations are performed while a second set of runtime objects comprised within the second section of the memory area are being concurrently manipulated by the at least one program thread that is executing the program instance, wherein the first referent is not accessible through a first chain of one or more references of a first reference type, wherein the second referent is not accessible through a second chain of one or more references of the first reference type, wherein the first reference type is a strong reference type, and wherein the second reference type is a non-strong reference type, wherein the first type of reference object is a soft type of reference object.

11 . The method of claim 9 , further comprising:

prior to breaking the first set of one or more references of the second reference type:

identifying a third reference object that holds a third reference to a third referent, the first section of the memory area comprising the third reference object and the third referent, wherein the third reference is classified as the second reference type;

based, at least in part, on determining that (a) the third reference object is a second type of reference object and (b) the third referent is not reachable through a chain of one or more references of a first reference type, adding the third reference object to the first list of one or more reference objects;

identifying a fifth reference object that holds a fifth reference to a fifth referent, the first section of the memory area comprising the fifth reference object and the fifth referent, wherein (a) the fifth reference is classified as the second reference type and (b) the fifth reference object is classified as the second type of reference object;

based, at least in part, on determining that the fifth referent is strongly reachable through a fifth chain of one or more references of the first reference type, refraining from adding the fifth reference object to the first list of one or more reference objects;

prior to breaking the second set of one or more references of the second reference type:

identifying a fourth reference object that holds a fourth reference to a fourth referent, the second section of the memory area comprising the fourth reference object and the fourth referent, wherein (a) the fourth reference object is classified as the first type of reference object and (b) the fourth reference is classified the second reference type; and

based, at least in part, on at least one of: (a) the first timestamp corresponding to the prior set of garbage collection operations targeting the second section of the memory area or (b) a fourth timestamp corresponding to the fourth reference object being used to access the fourth referent, refraining from adding the fourth reference object to the second list of one or more reference objects.

12 . The method of claim 9 , further comprising:

based, at least in part, on a first level of memory pressure in the memory area, selecting a first policy for processing reference objects, wherein (a) the first set of garbage collection operations are performed pursuant to the first policy for processing reference objects and (b) the second set of garbage collection operations are preformed pursuant to the first policy for processing reference objects;

subsequent to the first set of garbage collection operations and the second set of garbage collection operations:

based, at least in part, on a second level of memory pressure in the memory area, selecting a second policy for processing reference objects;

pursuant to the second policy for processing reference objects, performing a third set of garbage collection operations targeting the first section of the memory area, the third set of garbage collection operations comprising:

identifying a third reference object that holds a third reference to a third referent, the first section of the memory area comprising the third reference object and the third referent, wherein (a) the third reference object is classified as the first type of reference object and (b) the third reference is classified as the second reference type;

based, at least in part, on determining that the third referent is not reachable through a third chain of one or more references of a first reference type, adding the third reference object to a third list of one or more reference objects;

breaking a third set of one or more references of the second reference type that are respectively held by a third set of one or more reference objects comprised within the third list of one or more reference objects, wherein the third set of one or more references comprises the third reference;

pursuant to the second policy for processing reference objects, performing a fourth set of garbage collection operations targeting the second section of the memory area, the fourth set of garbage collection operations comprising:

identifying a fourth reference object that holds a fourth reference to a fourth referent, the first section of the memory area comprising the fourth reference object and the fourth referent, wherein the fourth reference is classified as the second reference type;

based, at least in part, on determining that the fourth referent is not reachable through a fourth chain of references of the first reference type, adding the fourth reference object to a fourth list of one or more reference objects;

breaking a fourth set of one or more references of the second reference type that are respectively held by a fourth set of one or more reference objects comprised within the fourth list of one or more reference objects, wherein the fourth set of one or more references comprises the fourth reference; and

updating the first timestamp corresponding to the prior set of garbage collection operations targeting the second section of the memory area, wherein the first timestamp subsequently corresponds to the fourth set of garbage collection operations targeting the second section of the memory area.

13 . The method of claim 9 , wherein at least a first subset of the first set of garbage collection operations are performed while a first set of runtime objects comprised within the first section of the memory area are being concurrently manipulated by at least one program thread that is executing a program instance, wherein at least a second subset of the second set of garbage collection operations are performed while a second set of runtime objects comprised within the second section of the memory area are being concurrently manipulated by the at least one program thread that is executing the program instance, wherein at least a third subset of the first set of garbage collection operations are performed at the same time as at least a fourth subset of the second set of garbage collection, wherein the first section of the memory area is a young generation of the memory area, wherein the second section of the memory area is an old generation of the memory area, wherein the first reference is implemented in memory, at least in part, by a first pointer, wherein the first pointer comprises a first address associated with the first referent; wherein the second reference is implemented in memory, at least in part, by a second pointer, wherein the second pointer comprises a second address associated with the second referent.

14 . The method of claim 13 , further comprising:

based, at least in part, on determining that the first referent is at least one: (a) linked to a first root object comprised within the first section of the memory area by a first chain of one or more references originating from the first root object or (b) accessible through a first final reference object, storing a first value to a first set of bits comprised within the first pointer; and

based, at least in part, on determining that the second referent is at least one: (a) linked to a second root object comprised within the second section of the memory area by a second chain of one or more references originating from the second root object or (b) accessible through a second final reference object, storing a second value to a second set of bits comprised within the second pointer.

15 . The method of claim 14 , wherein the first referent is promoted from the first section of the memory area to the second section of the memory area, wherein the first referent is the second referent, wherein the first pointer is the second pointer, and wherein the first set of bits is not the second set of bits.

16 . The method of claim 14 , further comprising:

accessing a reference to a runtime object, the memory area comprising the runtime object, wherein the reference is implemented in memory, at least in part, by a pointer comprising a binary address associated with the runtime object;

performing, during the first set of garbage collection operations, at least one of:

responsive to determining that the runtime object is at least one of: (a) linked to a first root object comprised within the first section of the memory area by a first chain of one or more references originating from the first root object or (b) accessible through a first final reference object, storing a first value to a first set of one or more bits comprised within the pointer; or

responsive to determining at least one of: (a) that the first chain of one or more references does not comprise a third reference that is classified as the second reference type or (b) the runtime object is accessible through a third chain of one or more references of a first reference type linking the runtime object to the first root object or a third root object comprised within the first section of the memory area, storing a second value to a second set of one or more bits comprised within the pointer; and

performing, during the second set of garbage collection operations, at least one of:

responsive to determining that the runtime object is at least one of: (a) accessible through a second chain of one or more references linking the runtime object to a second root object comprised within the second section of the memory area or (b) accessible through a second final reference object, storing a third value to a third set of one or more bits comprised within the pointer; or

responsive to determining at least one of: (a) that the second chain of one or more references does not comprise a fourth reference of the second reference type or (b) the runtime object is accessible through a fourth chain of one or more references of the first reference type linking the runtime object to the second root object or a fourth root object comprised within the second section of the memory area, storing a fourth value to a fourth set of one or more bits comprised within the pointer.

17 . A system comprising:

at least one device including a hardware processor;

the system being configured to perform operations comprising:

performing a first set of garbage collection operations targeting a first section of a memory area, the first set of garbage collection operations comprising:

identifying a first reference object that holds a first reference to a first referent, the first section of the memory area comprising the first reference object and the first referent, wherein the first reference is classified as a second reference type;

based, at least in part, on determining that the first reference object is classified as a first type of reference object, refraining from adding the first reference object to a first list of one or more reference objects;

breaking a first set of one or more references of the second reference type that are respectively held by a first set of one or more reference objects comprised within the first list of one or more reference objects, wherein the first set of one or more references does not comprise the first reference to the first referent;

performing a second set of garbage collection operations targeting a second section of the memory area, the second set of garbage collection operations comprising:

identifying a second reference object that holds a second reference to a second referent, the second section of the memory area comprising the second reference object and the second referent, wherein (a) the second reference object is classified as the first type of reference object and (b) the second reference is classified as the second reference type;

based, at least in part, on at least one of: (a) a first timestamp corresponding to a prior set of garbage collection operations targeting the second section of the memory area or (b) a second timestamp corresponding to the second reference object being used to access the second referent, adding the second reference object to a second list of one or more reference objects;

breaking a second set of one or more references of the second reference type that are respectively held by a second set of one or more reference objects comprised within the second list of one or more reference objects, wherein the second set of one or more references comprises the second reference to the second referent; and

updating the first timestamp, wherein the first timestamp subsequently corresponds to the second set of garbage collection operations targeting the second section of the memory area.

18 . The system of claim 17 , wherein at least a first subset of the first set of garbage collection operations are performed while a first set of runtime objects comprised within the first section of the memory area are being concurrently manipulated by at least one program thread that is executing a program instance, wherein at least a second subset of the second set of garbage collection operations are performed while a second set of runtime objects comprised within the second section of the memory area are being concurrently manipulated by the at least one program thread that is executing the program instance, wherein the first referent is not accessible through a first chain of one or more references of a first reference type, wherein the second referent is not accessible through a second chain of one or more references of the first reference type, wherein the first reference type is a strong reference type, wherein the second reference type is a non-strong reference type, and wherein the first type of reference object is a soft type of reference object.

19 . The system of claim 17 , wherein the operations further comprise:

prior to breaking the first set of one or more references of the second reference type:

identifying a third reference object that holds a third reference to a third referent, the first section of the memory area comprising the third reference object and the third referent, wherein the third reference is classified as the second reference type;

based, at least in part, on determining that (a) the third reference object is a second type of reference object and (b) the third referent is not reachable through a chain of one or more references of a first reference type, adding the third reference object to the first list of one or more reference objects;

identifying a fifth reference object that holds a fifth reference to a fifth referent, the first section of the memory area comprising the fifth reference object and the fifth referent, wherein (a) the fifth reference is classified as the second reference type and (b) the fifth reference object is classified as the second type of reference object;

based, at least in part, on determining that the fifth referent is strongly reachable through a fifth chain of one or more references of the first reference type, refraining from adding the fifth reference object to the first list of one or more reference objects;

prior to breaking the second set of one or more references of the second reference type:

identifying a fourth reference object that holds a fourth reference to a fourth referent, the second section of the memory area comprising the fourth reference object and the fourth referent, wherein (a) the fourth reference object is classified as the first type of reference object and (b) the fourth reference is classified the second reference type; and

based, at least in part, on at least one of: (a) the first timestamp corresponding to the prior set of garbage collection operations targeting the second section of the memory area or (b) a fourth timestamp corresponding to the fourth reference object being used to access the fourth referent, refraining from adding the fourth reference object to the second list of one or more reference objects.

20 . The system of claim 17 , wherein at least a first subset of the first set of garbage collection operations are performed while a first set of runtime objects comprised within the first section of the memory area are being concurrently manipulated by at least one program thread that is executing a program instance, wherein at least a second subset of the second set of garbage collection operations are performed while a second set of runtime objects comprised within the second section of the memory area are being concurrently manipulated by the at least one program thread that is executing the program instance, wherein at least a third subset of the first set of garbage collection operations are performed at the same time as at least a fourth subset of the second set of garbage collection, wherein the first section of the memory area is a young generation of the memory area, wherein the second section of the memory area is an old generation of the memory area, wherein the first reference is implemented in memory, at least in part, by a first pointer, wherein the first pointer comprises a first address associated with the first referent; wherein the second reference is implemented in memory, at least in part, by a second pointer, wherein the second pointer comprises a second address associated with the second referent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2025
From: ÖSTERLUND, ERIK; BOLDT-CHRISTMAS, AXEL; KARLSSON, STEFAN MATS RIKARD
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 069881/0454 →
References Cited (295)
US 5765007A · Rahman et al. · 1998 [cited by applicant]
US 5787430A · Doeringer et al. · 1998 [cited by applicant]
US 5842016A · Toutonghi et al. · 1998 [cited by applicant]
US 5845298A · O'Connor · 1998 [cited by examiner]
US 5873104A · Tremblay et al. · 1999 [cited by applicant]
US 5928357A · Underwood et al. · 1999 [cited by applicant]
US 5933840A · Menon et al. · 1999 [cited by applicant]
US 6052699A · Huelsbergen et al. · 2000 [cited by applicant]
US 6065020A · Dussud · 2000 [cited by applicant]
US 6158024A · Mandal · 2000 [cited by applicant]
US 6226653B1 · Alpern et al. · 2001 [cited by applicant]
US 6304949B1 · Houlsdworth · 2001 [cited by applicant]
US 6324637B1 · Hamilton · 2001 [cited by applicant]
US 6499032B1 · Tikkanen et al. · 2002 [cited by applicant]
US 6567905B2 · Otis · 2003 [cited by applicant]
US 6694346B1 · Aman et al. · 2004 [cited by applicant]
US 6728732B1 · Eatherton et al. · 2004 [cited by applicant]
US 6766513B2 · Charnell et al. · 2004 [cited by applicant]
US 6769004B2 · Barrett · 2004 [cited by applicant]
US 6809792B1 · Tehranchi et al. · 2004 [cited by applicant]
US 6915296B2 · Parson · 2005 [cited by applicant]
US 7072905B2 · Garthwaite · 2006 [cited by applicant]
US 7089272B1 · Garthwaite et al. · 2006 [cited by applicant]
US 7269705B1 · Seidl et al. · 2007 [cited by applicant]
US 7293051B1 · Printezis et al. · 2007 [cited by applicant]
US 7389395B1 · Garthwaite et al. · 2008 [cited by applicant]
US 7404182B1 · Garthwaite et al. · 2008 [cited by applicant]
US 7523081B1 · Engebretsen · 2009 [cited by applicant]
US 7539837B1 · Flood et al. · 2009 [cited by applicant]
US 7546587B2 · Marr et al. · 2009 [cited by applicant]
US 7548940B2 · Bacon · 2009 [cited by examiner]
US 7610437B2 · Sinclair et al. · 2009 [cited by applicant]
US 7774389B2 · Stephens et al. · 2010 [cited by applicant]
US 7808929B2 · Wong et al. · 2010 [cited by applicant]
US 7904493B2 · Schmelter et al. · 2011 [cited by applicant]
US 7962707B2 · Kaakani et al. · 2011 [cited by applicant]
US 7984084B2 · Sinclair · 2011 [cited by applicant]
US 8051426B2 · Meijer et al. · 2011 [cited by applicant]
US 8161084B2 · Goetz · 2012 [cited by examiner]
US 8205203B2 · Auerbach · 2012 [cited by examiner]
US 8261269B2 · Garmark · 2012 [cited by applicant]
US 8285918B2 · Maheshwari · 2012 [cited by applicant]
US 8443263B2 · Selinger et al. · 2013 [cited by applicant]
US 8495093B2 · Baudel · 2013 [cited by applicant]
US 8688754B1 · Burka et al. · 2014 [cited by applicant]
US 8788778B1 · Boyle · 2014 [cited by applicant]
US 8825719B2 · Steensgaard et al. · 2014 [cited by applicant]
US 8825721B2 · Hunt et al. · 2014 [cited by applicant]
US 8856186B1 · Li et al. · 2014 [cited by applicant]
US 8873284B2 · Sinclair et al. · 2014 [cited by applicant]
US 9135169B2 · Kawachiya et al. · 2015 [cited by applicant]
US 9208081B1 · Dice et al. · 2015 [cited by applicant]
US 9223693B2 · Sinclair et al. · 2015 [cited by applicant]
US 9323608B2 · Troia · 2016 [cited by applicant]
US 9336133B2 · Sinclair et al. · 2016 [cited by applicant]
US 9348746B2 · Sinclair et al. · 2016 [cited by applicant]
US 9465731B2 · Sinclair et al. · 2016 [cited by applicant]
US 9503435B2 · Mizrahi et al. · 2016 [cited by applicant]
US 9652382B1 · Subramanian et al. · 2017 [cited by applicant]
US 9727456B2 · Malwankar et al. · 2017 [cited by applicant]
US 9734050B2 · Sinclair et al. · 2017 [cited by applicant]
US 9734911B2 · Sinclair et al. · 2017 [cited by applicant]
US 9740716B2 · Wilhelmsson · 2017 [cited by applicant]
US 9778855B2 · Sinclair · 2017 [cited by applicant]
US 9921959B2 · Liden · 2018 [cited by examiner]
US 9971683B1 · Bell et al. · 2018 [cited by applicant]
US 10002074B2 · Flood et al. · 2018 [cited by applicant]
US 10108543B1 · Duggal et al. · 2018 [cited by applicant]
US 10108544B1 · Duggal et al. · 2018 [cited by applicant]
US 10120613B2 · Sinclair et al. · 2018 [cited by applicant]
US 10133490B2 · Sinclair et al. · 2018 [cited by applicant]
US 10255179B2 · Ji et al. · 2019 [cited by applicant]
US 10261898B1 · Payer · 2019 [cited by applicant]
US 10409692B1 · Brenner · 2019 [cited by examiner]
US 10430279B1 · Dittia et al. · 2019 [cited by applicant]
US 10664391B2 · Jang · 2020 [cited by applicant]
US 10739996B1 · Ebsen et al. · 2020 [cited by applicant]
US 10795812B1 · Duggal et al. · 2020 [cited by applicant]
US 10929288B1 · Moore et al. · 2021 [cited by applicant]
US 10983715B2 · Sharoni et al. · 2021 [cited by applicant]
US 10983908B1 · Zou et al. · 2021 [cited by applicant]
US 10996884B2 · Danilov et al. · 2021 [cited by applicant]
US 11086537B2 · Byun · 2021 [cited by applicant]
US 11366801B1 · Kumar et al. · 2022 [cited by applicant]
US 11507503B1 · Sterlund et al. · 2022 [cited by applicant]
US 11573894B2 · Österlund et al. · 2023 [cited by applicant]
US 12197324B1 · Österlund et al. · 2025 [cited by applicant]
US 20020059520A1 · Murakami et al. · 2002 [cited by applicant]
US 20030005027A1 · Borman et al. · 2003 [cited by applicant]
US 20030188141A1 · Chaudhry et al. · 2003 [cited by applicant]
US 20040186863A1 · Garthwaite · 2004 [cited by applicant]
US 20040187102A1 · Garthwaite · 2004 [cited by applicant]
US 20050066329A1 · Fischer et al. · 2005 [cited by applicant]
US 20050081190A1 · Betancourt et al. · 2005 [cited by applicant]
US 20050102670A1 · Bretl et al. · 2005 [cited by applicant]
US 20050114844A1 · Betancourt et al. · 2005 [cited by applicant]
US 20050149686A1 · Bacon et al. · 2005 [cited by applicant]
US 20050160413A1 · Broussard et al. · 2005 [cited by applicant]
US 20050160416A1 · Jamison · 2005 [cited by applicant]
US 20050188164A1 · Ballantyne et al. · 2005 [cited by applicant]
US 20050235006A1 · Adl-Tabatabai et al. · 2005 [cited by applicant]
US 20050267996A1 · O'Connor et al. · 2005 [cited by applicant]
US 20060005171A1 · Ellison · 2006 [cited by applicant]
US 20060026379A1 · Jung · 2006 [cited by applicant]
US 20060143168A1 · Rossmann · 2006 [cited by applicant]
US 20060143395A1 · Zohar et al. · 2006 [cited by applicant]
US 20070016633A1 · Lindholm et al. · 2007 [cited by applicant]
US 20070022149A1 · Bacon et al. · 2007 [cited by applicant]
US 20070033325A1 · Sinclair · 2007 [cited by applicant]
US 20070162528A1 · Wright et al. · 2007 [cited by applicant]
US 20070203960A1 · Guo · 2007 [cited by applicant]
US 20070234005A1 · Erlingsson et al. · 2007 [cited by applicant]
US 20080034175A1 · Traister et al. · 2008 [cited by applicant]
US 20080082596A1 · Gorobets · 2008 [cited by applicant]
US 20080086619A1 · Traister et al. · 2008 [cited by applicant]
US 20080140737A1 · Garst et al. · 2008 [cited by applicant]
US 20080162787A1 · Tomlin et al. · 2008 [cited by applicant]
US 20080189477A1 · Asano et al. · 2008 [cited by applicant]
US 20080250213A1 · Holt · 2008 [cited by applicant]
US 20090007075A1 · Edmark et al. · 2009 [cited by applicant]
US 20090037660A1 · Fairhurst · 2009 [cited by applicant]
US 20090119352A1 · Branda et al. · 2009 [cited by applicant]
US 20090132622A1 · Rossmann et al. · 2009 [cited by applicant]
US 20090158288A1 · Fulton et al. · 2009 [cited by applicant]
US 20090307292A1 · Li et al. · 2009 [cited by applicant]
US 20090319720A1 · Stefanus et al. · 2009 [cited by applicant]
US 20090328007A1 · Chen et al. · 2009 [cited by applicant]
US 20100011357A1 · Ramamurthy · 2010 [cited by applicant]
US 20100070727A1 · Harris et al. · 2010 [cited by applicant]
US 20100082710A1 · Kilner et al. · 2010 [cited by applicant]
US 20100114998A1 · Steensgaard et al. · 2010 [cited by applicant]
US 20100254254A1 · Chan et al. · 2010 [cited by applicant]
US 20100287350A1 · Ylonen · 2010 [cited by applicant]
US 20110145473A1 · Maheshwari · 2011 [cited by applicant]
US 20110145637A1 · Gray et al. · 2011 [cited by applicant]
US 20110161784A1 · Selinger et al. · 2011 [cited by applicant]
US 20110208792A1 · Printezis et al. · 2011 [cited by applicant]
US 20110246543A1 · Gracie et al. · 2011 [cited by applicant]
US 20110286420A1 · Cho et al. · 2011 [cited by applicant]
US 20120203804A1 · Burka et al. · 2012 [cited by applicant]
US 20130054925A1 · Hsia · 2013 [cited by applicant]
US 20130073821A1 · Flynn et al. · 2013 [cited by applicant]
US 20130138703A1 · Daynes et al. · 2013 [cited by applicant]
US 20130227236A1 · Flynn et al. · 2013 [cited by applicant]
US 20130290648A1 · Shao et al. · 2013 [cited by applicant]
US 20130318132A1 · Basu et al. · 2013 [cited by applicant]
US 20130332909A1 · Odaira et al. · 2013 [cited by applicant]
US 20140032922A1 · Spilman · 2014 [cited by applicant]
US 20140033213A1 · Hudson et al. · 2014 [cited by applicant]
US 20140101372A1 · Jung et al. · 2014 [cited by applicant]
US 20140108817A1 · Chen et al. · 2014 [cited by applicant]
US 20140195818A1 · Neumann et al. · 2014 [cited by applicant]
US 20140278447A1 · Unoki et al. · 2014 [cited by applicant]
US 20140283040A1 · Wilkerson et al. · 2014 [cited by applicant]
US 20140310235A1 · Chan et al. · 2014 [cited by applicant]
US 20140325148A1 · Choi et al. · 2014 [cited by applicant]
US 20140359201A1 · Chakrabarti · 2014 [cited by applicant]
US 20140365719A1 · Kuzmin et al. · 2014 [cited by applicant]
US 20150006843A1 · Moser · 2015 [cited by applicant]
US 20150026167A1 · Neels et al. · 2015 [cited by applicant]
US 20150058381A1 · Wilhelmsson · 2015 [cited by applicant]
US 20150081996A1 · Flood · 2015 [cited by applicant]
US 20150100752A1 · Flood · 2015 [cited by applicant]
US 20150227416A1 · Reinart · 2015 [cited by applicant]
US 20150227602A1 · Ramu et al. · 2015 [cited by applicant]
US 20150365941A1 · Liu et al. · 2015 [cited by applicant]
US 20150378870A1 · Marron et al. · 2015 [cited by applicant]
US 20160012280A1 · Ito et al. · 2016 [cited by applicant]
US 20160042015A1 · Landau et al. · 2016 [cited by applicant]
US 20160124802A1 · Gabor et al. · 2016 [cited by applicant]
US 20160163381A1 · Lee · 2016 [cited by applicant]
US 20160170649A1 · Ramesh et al. · 2016 [cited by applicant]
US 20160179580A1 · Benedict · 2016 [cited by applicant]
US 20160239413A1 · Stephens et al. · 2016 [cited by applicant]
US 20160246713A1 · Choi et al. · 2016 [cited by applicant]
US 20160283369A1 · Hada · 2016 [cited by applicant]
US 20160350214A1 · Payer et al. · 2016 [cited by applicant]
US 20170006135A1 · Siebel et al. · 2017 [cited by applicant]
US 20170039242A1 · Milton et al. · 2017 [cited by applicant]
US 20170123655A1 · Sinclair et al. · 2017 [cited by applicant]
US 20170177168A1 · Abudib et al. · 2017 [cited by applicant]
US 20170177471A1 · Frazier et al. · 2017 [cited by applicant]
US 20170242790A1 · O'Krafka et al. · 2017 [cited by applicant]
US 20170262364A1 · Liden et al. · 2017 [cited by applicant]
US 20170344473A1 · Gidra et al. · 2017 [cited by applicant]
US 20180074854A1 · Chan · 2018 [cited by applicant]
US 20180173728A1 · Munakata · 2018 [cited by applicant]
US 20180189175A1 · Ji et al. · 2018 [cited by applicant]
US 20180276120A1 · Vytiniotis et al. · 2018 [cited by applicant]
US 20180335968A1 · Pauley et al. · 2018 [cited by applicant]
US 20180365106A1 · Huang et al. · 2018 [cited by applicant]
US 20190042406A1 · Guniguntala et al. · 2019 [cited by applicant]
US 20190042440A1 · Kumar et al. · 2019 [cited by applicant]
US 20200012600A1 · Konoth et al. · 2020 [cited by applicant]
US 20200012647A1 · Johnson et al. · 2020 [cited by applicant]
US 20200026781A1 · Khot et al. · 2020 [cited by applicant]
US 20200081748A1 · Johnson et al. · 2020 [cited by applicant]
US 20200089420A1 · Sharoni et al. · 2020 [cited by applicant]
US 20200125364A1 · Osterlund · 2020 [cited by applicant]
US 20200192794A1 · Lee · 2020 [cited by applicant]
US 20200202127A1 · Chen et al. · 2020 [cited by applicant]
US 20200218653A1 · Ryu · 2020 [cited by applicant]
US 20200250084A1 · Stephens et al. · 2020 [cited by applicant]
US 20200310686A1 · Truong et al. · 2020 [cited by applicant]
US 20200310963A1 · Nilsen · 2020 [cited by applicant]
US 20200327052A1 · Nilsen · 2020 [cited by applicant]
US 20200379902A1 · Durham et al. · 2020 [cited by applicant]
US 20210124608A1 · Shveidel et al. · 2021 [cited by applicant]
US 20210200546A1 · Lemay et al. · 2021 [cited by applicant]
US 20210278990A1 · Choi · 2021 [cited by applicant]
US 20210342362A1 · Haravu et al. · 2021 [cited by applicant]
US 20210406216A1 · Komatsu et al. · 2021 [cited by applicant]
US 20220058732A1 · Reses · 2022 [cited by applicant]
US 20220138098A1 · Osterlund et al. · 2022 [cited by applicant]
US 20220188432A1 · Turmel et al. · 2022 [cited by applicant]
CA 2700217C · 2011 [cited by applicant]
JP 4265610B2 · 2009 [cited by applicant]
WO 0029937A2 · 2000 [cited by applicant]
WO 2016073019A1 · 2016 [cited by applicant]
WO 2017053754A1 · 2017 [cited by applicant]
WO 2017178114A9 · 2017 [cited by applicant]
Tene et al.; C4: The Continuously Concurrent Compacting Collector ISMM'11, Jun. 4-5, 2011, San Jose, CA, USA Copyright 2011, ACM 978-M503-0263-0/11/06 . . . $10.00. [cited by applicant]
The Z Garbage Collector—Low Latency GC OpenJDK, available online at <http://cr.openjdk.java.net/˜pliden/slides/ZGC-Jfokus-2018.pdf>, 2018, 96 pages. [cited by applicant]
Title: Detecting and eliminating memory leaks using cyclic memory allocation, author: JJ Nguyen et al., published on 2007. [cited by applicant]
Title: Reconsidering custom memory allocation; author:: ED Berger et al, published on 2002. [cited by applicant]
Title: Understanding memory allocation of Scheme programs author: M Serrano published on 2000. [cited by applicant]
Vechev et al. “Write Barrier Elision for Concurrent Garbage Collectors”, 2004 (Year: 2004). [cited by applicant]
Verma A., “The comprehensive guide to react's virtual DOM”, May 15, 2021, pp. 23. [cited by applicant]
Wilson, P.R., et al., “A “Card-making” scheme for controlling intergenerational differences in generation—based garbage collection on stock hardware,” ACM SIGPLAN Notices, vol. 24, Issue 5, May 1989, pp. 87-92. [cited by applicant]
Yang et al., “Deep Dive into ZGC: A Modern Garbage Collector in OpenJDK”, ACM Transactions on Programming Languages and Systems, vol. 44, No. 4, Article 22, Aug. 2022, 34 pages. [cited by applicant]
Yang et al., “Improving Program Locality in the GC using Hotness,” PLDI' 20, pp. 301-313, Jun. 15-20, 2020. [cited by applicant]
Yuasa et al., “Return Barrier,” International Lisp Conference, 2002, 12 pages. [cited by applicant]
Yuasa, T., “Real-time garbage collection on general-purpose machines,” Journal of Systems and Software, vol. 11, Issue 3, <arch 1990, pp. 181-198. [cited by applicant]
ZGC Concurrent Class Unloading—Another Safepoint Operation Bites the Dust: available online at <http://cr.openjdk.java.net/˜pliden/slides/ZGC-Jfokus-2019.pdf>, Feb. 4, 2019, 55 pages. [cited by applicant]
Zhao et al., “Low-latency, high-throughput garbage collection”, PLDI 2022: Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation, Jun. 2022, pp. 76-91. [cited by applicant]
“Basic Graph Algorithms”, Indian Computing Olympiad, Retrieved from https://www.iarcs.org.in/inoi/online-study-material/topics/graphs-dfs.php, Retrieved on Dec. 8, 2022, pp. 3. [cited by applicant]
“JEP 439: Generational ZGC”, Retrieved from https://openjdk.org/jeps/439, Oct. 7, 2024, pp. 1-9. [cited by applicant]
“Lazy Compaction”, Retrieved from https://wiki.se.oracle.com/display/JPG/Lazy+Compaction, Retrieved on Sep. 20, 2022, 2 Pages. [cited by applicant]
“React as UI runtime”, Overreacted, Feb. 2, 2019, pp. 38. [cited by applicant]
“Recitation 8—Dijkstra's Algorithm and DFS Numberings”, Parallel and Sequential Data Structures and Algorithms, 15-210 (Fall 2013), Oct. 16, 2013, pp. 1-6. [cited by applicant]
“What is Schema?” Retrieved from https://github.com/json-schema-org/understanding-json-schema, Jan. 11, 2023, pp. 3. [cited by applicant]
“ZGC—Generations Revision 2,” accessed at https://wiki.se.oracle.com/display/JPG/ZGC+-+Generations+Revision , Feb. 1, 2020, pp. 6. [cited by applicant]
A concurrent, generational garbage collector for a multithreaded implementation of ML by Doligez (Year: 1993). [cited by applicant]
A Hardware Accelerator for Tracing Garbage Collection by Maas (Year: 2018). [cited by applicant]
Armbrust Michael Michael@Databricks Com et al, “Spark SQL Relational Data Processing in Spark,” Proceedings of The 2015 ACM SIGMOD International Conference on Management of Data, SIGMOD '15, ACM Press, New York, New Yor… [cited by applicant]
Benjamin Zorn, Barrier Methods for Garbage Collection, Nov. 1990, UC Boulder available at: https://spl.cde.state.co.us/artemis/ucbserials/ucb51110internet/1990/ucb51110494internet.pdf (Year: 1990). [cited by applicant]
Boehm et al.; “Efficient In-Memory Indexing with Generalized Prefix Trees”, downloaded from https://pdfs.Semanticscholar.org/c5ca/a359fe6b345580a4dd476d5dd41 a90bf301c.pdf; Mar. 26, 2018. [cited by applicant]
Click et al.; “The Pauseless GC Algorithm”, VEE 05, Jun. 11-12, 2005, Chicago, Illinois, USA. Copyright 2005 ACM 1-59593-047-7/05/0006 . . . S5.00. [cited by applicant]
Clifford et al., “Memento Mori: Dynamic Allocation-Site-Based Optimizations”, ACM SIGPLAN Notices, vol. 50, No. 11, Jun. 14, 2015, pp. 105-117. [cited by applicant]
David Gnedt, “Fast Profiling in the HotSpot Java VM with Incremental Stack Tracing and Partial Safepoints,” Faculty of Engineering and Natural Sciences, 2014, 57 pages. [cited by applicant]
Detlefs; “Concurrent Remembered Set Refinement in Generational Garbage Collection”, Proceedings of the USENIX Java VM '02 Conference, Aug. 1-2, 2002, San Francisco, CA. [cited by applicant]
Domani et al., “Implementing an On-the-fly Garbage Collector for Java,” ACM SIGPLAN Notices, vol. 36, No. 1, 2000, pp. 155-166. [cited by applicant]
Dorai et al., Control delimiters and their hierarchies, LISP and Symbolic Computation: An International Journal, vol. 3, 1990, pp. 67-99. [cited by applicant]
Ellis D., “What is Swagger? A beginner's guide”, Jul. 26, 2022, pp. 6. [cited by applicant]
Feng et al.; “Trie-join: a trie-based method for efficient string similarity joins”, Published online Oct. 4, 2011; The VLDB Journal Springer-Verlag 2011. [cited by applicant]
Fitzgerald; “The Case for Profile Directed Selection of Garbage Collectors”, Proceedings of the 2nd International Symposium on Memory Management, ACM, New York, NY USA, 111-120, DOI=10.1145/362422.362472, http://doi.acm… [cited by applicant]
Generational Garbage Collection, Write Barriers/Write Protection and userfaultfd(2) by Cracauer (Year: 2016). [cited by applicant]
Getting started with Z Garbage Collector(ZGC) in Java 11 [Tutorial] by Davis (Year: 2019). [cited by applicant]
Goetz, Java theory and practice Garbage collection in the HotSpot JVM, Generational and concurrent garbage collection, IBM Developer Works, Nov. 25, 2003. [cited by applicant]
Harris T, et al., “Dynamic filtering: multi-purpose architecture support for language runtime systems,” ACM SIGARCH Computer Architecture News, vol. 38, Issue 1, Mar. 2010, pp. 39-52. [cited by applicant]
Heule et al., “HyperLogLog in practice: algorithmic engineering of a state of the art cardinality estimation algorithm,” EDBT '13: Proceedings of the 16th International Conference on Extending Database Technology, Mar. … [cited by applicant]
Hosking; “A Comparative Performance Evaluation of Write Barrier Implementations”, Proceedings ACM Conference on Object-Oriented Programming Systems, Languages and Applications, Vancouver, Canada, Oct. 1992, pp. 92-109. [cited by applicant]
How to Implement Java's hashCode Correctly, May 19, 2016, Available online at <https://www.sitepoint.com/how-to-implement-javas-hashcode-correctly/>, 7 pages. [cited by applicant]
JDK 15, Available online at < https://openjdk.java.net/projects/jdk/15/ >, Last updated, Sep. 15, 2020, 2 pages. [cited by applicant]
JEP 333: ZGC: A Scalable Low-Latency Garbage Collector(Experimental) by Liden and Karlsson (Year: 2020). [cited by applicant]
Joisha; “Sticky Tries: Fast Insertions, Fast Lookups, No Deletions for Large Key Universe”, ISMM '14, Jun. 12, 2014, Edinburgh UK. [cited by applicant]
Kliot et al., “A Lock-Free, Concurrent, and Incremental Stack Scanning for Garbage Collectors,” In Proceedings of the ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE '09), 2009, pp. 11… [cited by applicant]
Lokesh Gupta, “Java Secure Hashing—MD5, SHA256, SHA512, PBKDF2, BCrypt, Scrypt,” Available online at <https://howtodoinjava.com/security/how-to-generate-secure-password-hash-md5-sha-pbkdf2-bcrypt-examples/> printed on A… [cited by applicant]
M. Felleisen et al., Beyond Continuations: Technical Report No. 216, Feb. 1987, 13 pages. [cited by applicant]
Main—Main—OpenJDK Wiki, Created by Iris Clark, last modified by Per Liden, available online at <URL: https://wiki.openjdk.java.net/display/zgc/Main>, Oct. 15, 2020, 9 pages. [cited by applicant]
Mohamed A. El-Zawawy, “Recognition of Logically Related Regions Based Heap Abstraction”, Journal of the Egyptian Mathematical Society, vol. 20, Issue 2, Jul. 2012, pp. 64-71, arXiv: 1212.5094 [cs.LO]. [cited by applicant]
Mostly Concurrent Garbage Collection Revisited by Barabash (Year: 2003). [cited by applicant]
Olsson et al.; “Trash a dynamic LC-trie and hash data structure”, Trita-CSC-TCS 2006:2, ISRN/KTH/CSC/CS-2006/2-SE, ISSN 1653-7092, Aug. 18, 2006. [cited by applicant]
Open JDK, “HotSpot Glossary of Terms”, 2006, Sun Microsystems, available at <https://openjdk.java.net/groups/hotspot/docs/HotSpotGlossary.html>, 6 pages. [cited by applicant]
Osterlund E., “Garbage Collection supporting automatic JIT parallelization in JVM”, Computer Science, Jun. 26, 2012, pp. 29. [cited by applicant]
Osterlund E., “Going Beyond On-The-Fly Garbage Collection and Improving Self-Adaptation with Enhanced Interfaces”, Computer Science, 2019, pp. 68. [cited by applicant]
Osterlund et al., “Block-Free Concurrent GC: Stack Scanning and Copying,” International Symposium on Memory Management, vol. 51, 2016, 12 pages. [cited by applicant]
Per Liden, The Design of ZGC—A scalable Low-Latency Garbage Collector for Java: available online at <http://cr.openjdk.java.net/˜pliden/slides/ZGC-PLMeetup-2019.pdf>, Jun. 12, 2019, 84 pages. [cited by applicant]
Pufek et al., “Analysis of Garbage Collection Algorithms and Memory Management in Java”, 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), Croatian… [cited by applicant]
Robbin Ehn, “JEP 312: Thread-Local Handshakes,” Hotspot Dash Dev at Openjdk Dot Java Dot Net, available at <http://openjdk.java.net/jeps/312>, 2018, 3 pages. [cited by applicant]
Rogers I., “Reducing and eliding read barriers for concurrent garbage collectors,” ICOOOLPS '11: Proceedings of the 6th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Sy… [cited by applicant]
Ryan Sciampacone et al, “Garbage collection in WebSphere Application Server V8, Part 2: Balanced garbage collection as a new option”, IBM developerWorks, Aug. 3, 2011. [cited by applicant]
Saxena et al., “Key and Value Paired Data using Java Hash Table,” International Journal of Engineering and Management Research, vol. 4, Issue 1, Feb. 2014, pp. 81-89. [cited by applicant]
Shoravi L., “Compressing Pointers for the Z Garbage Collector”, Runtime compression of pointers in a concurrent setting, Jun. 2023, 38 Pages. [cited by applicant]
Stefan Karlsson, JEP 439: Generational ZGC, Aug. 25, 2021, OpenJDK, available at: https://openjdk.org/jeps/439 (Year: 2021). [cited by applicant]
Herlihy et al., “Software transactional memory for dynamic-sized data structures”, PODC '03: Proceedings of the twenty-second annual symposium on Principles of distributed computing, Jul. 13, 2003, pp. 92-101. [cited by applicant]
Huang et al., “Precise and maximal race detection from incomplete traces”, ACM SIGPLAN Notices, vol. 51, No. 10, Oct. 19, 2016, pp. 462-476. [cited by applicant]
O'Callahan et al., “Hybrid dynamic data race detection”, PPoPP '03: Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming, Jun. 11, 2003, pp. 167-178. [cited by applicant]
Osterlund E., “Data Race Free Java: Transactional Memory+ thread local GC”, Aug. 19, 2024, pp. 3. [cited by applicant]
Savage et al., “Eraser: a dynamic data race detector for multithreaded programs”, ACM Transactions on Computer Systems, vol. 15, No. 4, Nov. 1, 1997, pp. 391-411. [cited by applicant]
Shavit et al., “Software Transactional Memory”, 1995, pp. 204-213. [cited by applicant]
GeeksforGeeks, “Thread in Operating System”, Aug. 16, 2019, pp. 1-4, https://web.archive.org/web/20200926013500/https://www.geeksforgeeks.org/thread-in-operating-system/ (Year: 2019). [cited by applicant]
Guy Harris, “Thread (computing)”, Dec. 2022, pp. 1-10, https://en.wikipedia.org/w/index.php?title=Thread_(computing)&oldid=1128791380 (Year: 2022). [cited by applicant]
Stephen J. Bigelow, “thread”, Aug. 2023, pp. 1-10, https://www.techtarget.com/whatis/definition/thread (Year: 2023). [cited by applicant]
Sun Microsystems, “What Is a Thread?”, 2005, pp. 1-2, https://www.iitk.ac.in/esc101/05Aug/tutorial/essential/threads/definition.html#:˜: text= Definition:%20A%20thread%20is%20a,tasks%20in%20a%20single%20program. (Year: … [cited by applicant]