Pregunta

La primera fase de un recolector de basura de barrido de marca es marcar (encontrar) todos los objetos vivos en el montón. Para hacer esto, debe haber un punto de partida o raíz, desde donde comienza toda la marca. ¿Cómo identifica GC tales raíces?

¿Fue útil?

Solución

Usando la técnica llamada Root Set Enumeratios, se identificarán todas las raíces. Aquí hay una oración del documento de patente de Mark-Sweep.

En la primera fase, se pueden identificar todas las referencias directas a los objetos de los programas en ejecución actualmente. Estas referencias se denominan raíces, o juntas un conjunto de raíces, y un proceso de identificación de todas dichas referencias puede llamarse enumeración del conjunto de raíces

Aquí está el enlace para el documento de patente. Mark Sweep Patent Link

A pesar de que fue de .net Guy, siento Conceptos básicos del barrido de la marca Link le dará una buena comprensión de cómo funciona.

Otros consejos

"Se supone que un conjunto distinguido de objetos es accesible: estos se conocen como las raíces. Por lo general, estos incluyen Todos los objetos mencionados desde cualquier lugar de la pila de llamadas (es decir, todas las variables y parámetros locales en las funciones que se invocan actualmente) y cualquier variable global.

Wikipedia

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top