Administrar la Memoria de Forma Eficiente
La memoria es un recurso precioso del que no puedes darte el lujo de adolecer. Puedes ignorarla por un momento pero eventualmente tendrás que decidir cómo **administrar la memoria**.
El espacio que necesita para persistir más allá del alcance de una sencilla subrutina es a menudo llamado heap asignado. Un trozo de memoria es inútil, y por lo tanto basura, cuando nada lo referencia. Dependiendo del sistema que uses, puede que
tengas que desasignar explícitamente la memoria tu mismo cuando está a punto de convertirse en basura. **Administrar la memoria** de forma eficiente es crucial en cualquier desarrollo de software. Muy a menudo puedes ser capaz de usar un sistema que proporcione un recolector de basura. Un recolector de basura nota la basura y libera
su espacio sin ninguna acción requerida por el programador. La recolección de basura es maravillosa: reduce los errores e incrementa la brevedad del código y la concisión de forma barata. Úsala cuando puedas.
Pero aún con la recolección de basura, puedes llenar toda la memoria con basura. Un error clásico es usar una tabla hash como un caché y olvidar remover las referencias en dicha tabla. Puesto que las referencias se mantienen, el referente es no recolectable sino inútil. Esto es llamado una fuga de memoria. Debes observar y corregir temprano las fugas de memoria. Si tienes tiempo de estar corriendo sistemas puede que la memoria nunca se agote durante las pruebas pero será agotada por el usuario.
Memoria Asignada en SQL Server
La creación de nuevos objetos es moderadamente costosa en cualquier sistema. La **memoria asignada SQL Server** directamente en las variables locales de una subrutina, sin embargo, es usualmente barata debido a que la política para liberarla puede ser muy simple. Deberías evitar la creación innecesaria de objetos.
Un caso importante ocurre cuando puedes definir un límite superior en el número de objetos que necesitarás a la vez. Si todos esos objetos toman la misma cantidad de memoria, puedes ser capaz de asignar un único bloque de memoria, o un búfer, para contenerlas todas. Los objetos que necesitas pueden ser ubicados y liberados dentro de este búfer en un patrón de rotación fijo, por lo cual esto es llamado a veces un búfer circular. Esto es usualmente más rápido que la asignación heap.
Algunas veces tienes que liberar explícitamente el espacio asignado de tal forma que pueda ser reasignado en lugar de confiar en la recolección de basura. Luego debes aplicar cuidadosamente la inteligencia para cada trozo de memoria asignada y diseñar un método para que sea desasignada en el momento apropiado. El método puede diferir para cada tipo de objeto que crees. Debes asegurarte que cada ejecución de una operación de asignación de memoria coincida eventualmente con una desasignación de memoria. Esto es tan difícil que los programadores a menudo implementan simplemente una forma rudimentaria de recolección de basura, tal como un conteo de referencia, para hacer esto por ellos.
Fuente:
Cómo Ser Un Programador: Un Resumen
Corto, Comprensivo y Personal
por Robert L. Read
Si quieres conocer otros artículos parecidos a Cómo Administrar la Memoria puedes visitar la categoría BASES DE DATOS.
Deja una respuesta