Capítulo 7. Vida útil de los objetos

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

Una ventaja del modelo de ejecución gestionada de .NET es que el tiempo de ejecución puede automatizar la mayor parte de la gestión de memoria de tu aplicación. He mostrado numerosos ejemplos que crean objetos con la palabra clave new, y ninguno ha liberado explícitamente la memoria consumida por estos objetos.

En la mayoría de los casos, no necesitas realizar ninguna acción para recuperar memoria. El tiempo de ejecución proporciona un recolector de basura (GC),1 un mecanismo que descubre automáticamente cuándo los objetos ya no están en uso y recupera la memoria que habían estado ocupando para que pueda ser utilizada por nuevos objetos. Sin embargo, hay ciertos patrones de uso que pueden causar problemas de rendimiento o incluso derrotar por completo al GC, por lo que es útil entender cómo funciona. Esto es especialmente importante con los procesos de larga duración que pueden funcionar durante días (los procesos de corta duración pueden tolerar algunas fugas de memoria).

El GC está diseñado para gestionar la memoria de forma eficiente, pero la memoria no es el único recurso limitado con el que puedes tener que lidiar. Algunas cosas ocupan poca memoria en el CLR, pero representan algo relativamente caro, como una conexión a una base de datos o un "handle" de una API del SO. El GC no siempre se ocupa de ellos con eficacia, así ...

Get Programación C# 12 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.