Capítulo 29. La recogida de basura es tu amiga

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Holly Cummins

La pobre recolección de basura. Uno de los héroes olvidados de Java, a menudo culpado, rara vez alabado. Antes de que Java generalizara la recolección de basura, los programadores no tenían más remedio que rastrear manualmente toda la memoria que habían asignado, y desasignarla cuando ya nada la utilizaba. Esto es difícil. Incluso con disciplina, la desasignación manual es una causa frecuente de fugas de memoria (si se hace demasiado tarde) y de fallos (si se hace demasiado pronto).

A menudo se piensa en la GC (recolección de basura) de Java como un coste necesario, y "reducir el tiempo empleado en la GC" es una orientación común sobre el rendimiento. Sin embargo, la recolección de basura moderna puede ser más rápida que malloc/free, y el tiempo empleado en GC puede acelerarlo todo. ¿Por qué? Los recolectores de basura hacen algo más que retirar memoria: también gestionan la asignación de memoria y la disposición de los objetos en ella. Un buen algoritmo de gestión de la memoria puede hacer que la asignación sea eficiente, reduciendo la fragmentación y la contención. También puede aumentar el rendimiento y reducir los tiempos de respuesta reorganizando los objetos.

¿Por qué la ubicación de un objeto en ...

Get 97 cosas que todo programador Java debe saber now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.