Recolección de lixo

Na Galipedia, a Wikipedia en galego.

En informática, recolección de lixo (garbage collection ou GC en inglés) é unha forma de xestión de memoria automática. O recolector de lixo tenta recuperar lixo, ou memoria ocupada por obxectos que non se utilizarán de novo na aplicación. A recolección de lixo inventouna o científico da computación John McCarthy ó redor de 1959 para o problema da xestión de memoria manual na súa linguaxe de programación Lisp. [1]

Descripción[editar | editar a fonte]

O principio básico polo que funciona a recolección de lixo é:

  1. Determinar qué obxectos dun programa non serán accedidos no futuro
  2. Reclamar os recursos utilizados por eses obxectos

Ó facer a liberación manual de memoria innecesaria (e a miudo prohibíndoa expresamente), a recolección de lixo libera ó programador de preocuparse de borrar explícitamente aqueles obxectos que xa non precisa, tarefa que pode consumir un esforzo significativo. Ademais, axuda ós programadores nos seus esforzos por faceren programas máis estables, xa que prevén diversas clases de erros en tempo de execución. Por exemplo, prevé o erro do punteiro colgante, onde téntase usar unha referencia a un obxecto eliminado. Moitas linguaxes de programación precisan da recolección de lixo, ben coma parte da especificación da linguaxe (exemplos: Java, Lisp e a maioría das linguaxes utilizadas para scripting (guións)), ben coma necesidade práctica para a implementación (exemplo: as linguaxes formais coma o cálculo lambda). Outras linguaxes deseñáronse para se utilizar con xestión de memoria manual, pero teñen implementacións con recolección de lixo (exemplos: C e C++).