A threshold size of "interesting" free space regions (those areas that
exceed a minimum size and are therefore worth recovering) is employed
during garbage collection when detecting and reclaiming non-allocated
memory space. For mark/sweep garbage collection, the threshold is based
upon a number of consecutive zero mark bits in a mark bit array. The mark
bit array, in which the liveness of each allocated data object is
indicated by a logical "1" at the first memory segment of a live object
and a logical "0" at the first memory segment for dead object, with the
remaining memory segments being marked with a logical "0", is produced by
the mark phase of a mark/sweep garbage collector. During the sweep phase,
however, the mark bit array is processed instead of each object in memory.
Interesting free space regions, which meet or exceed the threshold size
and are targeted for de-allocation and coalescing, are identified from
runs of consecutive zeros, with verification that the run corresponds to
unused memory. This allows sequences of bits to be inspected concurrently
at a high rate, eliminating the need to inspect objects individually and
skipping small free space regions intermingled with live objects. By
eliminating the need to examine each object for "liveness," groups of
objects, represented by mark bits, are treated as aggregates which may be
processed more quickly.
Un tamaño del umbral de las regiones libres "interesantes" del espacio (esas áreas que exceden un tamaño mínimo y están por lo tanto digno de la recuperación) se emplea durante la colección de la basura al detectar y reclamando la memoria no-asignada. Para la colección de la basura de mark/sweep, el umbral se basa sobre un número de pedacitos cero consecutivos de la marca en un arsenal de pedacito de la marca. El arsenal de pedacito de la marca, en el cual el liveness de cada objeto asignado de los datos es indicado por un "1 lógico" en el primer segmento de la memoria de un objeto vivo y un "0 lógico" en el primer segmento de la memoria para el objeto muerto, con los segmentos restantes de la memoria que son marcados con un "0 lógico", se produce por la fase de la marca de un colector de la basura de mark/sweep. Durante la fase del barrido, sin embargo, el arsenal de pedacito de la marca se procesa en vez de cada objeto en memoria. Las regiones libres interesantes del espacio, que resuelven o exceden el tamaño del umbral y se apuntan para la desasignación y unirse, se identifican de funcionamientos de ceros consecutivos, con la verificación que el funcionamiento corresponde a la memoria inusitada. Esto permite que las secuencias de pedacitos sean examinadas concurrentemente en una alta tarifa, eliminando la necesidad de examinar objetos individualmente y saltando las regiones libres pequeñas del espacio mezcladas con los objetos vivos. Eliminando la necesidad de examinar cada objeto para el "liveness," los grupos de objetos, representados por los pedacitos de la marca, son tratados como agregados que se puedan procesar más rápidamente.