Improved techniques for identifying and tracking references to Java objects
are disclosed. The techniques can be used to implement garbage collection
facilities for Java programs in a manner that is more efficient,
especially for systems with limited resources (e.g., embedded systems).
For each execution stack, a reference stack can be designated. The
reference stack can be used to store references to Java objects in the
same offset as they appear in the corresponding execution stack.
References to Java objects can be identified based on the values stored in
the reference stack. The reference stack can be traversed to identify the
entries that correspond to active Java objects. These entries can then be
checked against the corresponding entries in the execution stack to ensure
with a greater degree of certainty that the identified entries represent
references to active Java objects.
De betere technieken om verwijzingen naar de voorwerpen van Java worden te identificeren en te volgen onthuld. De technieken kunnen worden gebruikt om de faciliteiten van de huisvuilinzameling voor de programma's van Java op een manier uit te voeren die efficiënter is, vooral voor systemen met beperkte middelen (b.v., ingebedde systemen). Voor elke uitvoeringsstapel, kan een verwijzingsstapel worden aangewezen. De verwijzingsstapel kan worden gebruikt om verwijzingen naar de voorwerpen van Java in het gecompenseerde zelfde op te slaan dat zij in de overeenkomstige uitvoeringsstapel verschijnen. De verwijzingen naar de voorwerpen van Java kunnen worden geïdentificeerd gebaseerd op de waarden die in de verwijzingsstapel worden opgeslagen. De verwijzingsstapel kan zijn overgestoken om de ingangen te identificeren die aan de actieve voorwerpen van Java beantwoorden. Deze ingangen kunnen dan tegen de overeenkomstige ingangen in de uitvoeringsstapel worden gecontroleerd om ervoor te zorgen met een grotere graad van zekerheid dat de geïdentificeerde ingangen verwijzingen naar de actieve voorwerpen van Java vertegenwoordigen.