Recolección de lixo
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]
Descrición
[editar | editar a fonte]O principio básico polo que funciona a recolección de lixo é:
- Determinar qué obxectos dun programa non serán accedidos no futuro
- Reclamar os recursos utilizados por eses obxectos
Ó facer a liberación manual de memoria innecesaria (e a miúdo prohibíndoa expresamente), a recolección de lixo libera ó programador de preocuparse de borrar explicitamente 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++).