Un recolector de basura o garbage collector, es un mecanismo implícito de gestión de memoria, implementado en algunos lenguajes de programación de tipo interpretado o semi-interpretado. Dado que todos los programas informáticos utilizan una buena cantidad de memoria de trabajo, puesta a su disposición por el sistema operativo, esta debe ser gestionada por el dicho programa, para reservar espacios de memoria para su uso; liberar espacios de memoria previamente reservados; compactar espacios de memoria libres y consecutivos entre sí; llevar cuenta de qué espacios están libres y cuáles no.
Generalmente, el programador dispone de una biblioteca de código que se encarga de estas tareas, pero, no obstante, el propio programador es responsable de optimizar dicha biblioteca.
De manera que es necesaria una gestión implícita de memoria, pues el programador no siempre es consciente de la reserva y liberación de memoria.
La nube elástica de Facilcloud cuenta con Java Garbage Collector, para así aprovechar las ventajas de esta herramienta.
El recolector de basura es informado de todas las reservas de memoria que se producen en el programa; además, el compilador colabora para que sea posible llevar una cuenta de todas las referencias que existen a un determinado espacio de memoria reservado. El recolector de basura, recorre la lista de espacios reservados observando el contador de referencias de cada espacio; de manera que, si un contador ha llegado a cero significa que ese espacio de memoria ya no se está utilizando y, por tanto, puede ser liberado.
De manera que, es muy útil saber cuándo se tiene que ejecutar el recolector de basura, unos indicadores a seguir podrían ser los siguientes: esperar a que no quede memoria libre, y entonces, ejecutarlo; fijar un umbral de ocupación de la memoria libre y ejecutarlo cuando se supere dicho umbral; ejecutarlo a intervalos regulares; hacerlo justo antes de cada reserva de memoria; permitir al programador la libertad de usarlo cuando considere.
0 comentarios