memorymanagement_whitepaper
Páginas: 25 (6038 palabras)
Publicado: 26 de mayo de 2014
1 Introducción
Un punto fuerte del 2 Plataforma JavaTM , Standard Edition ( J2SETM ) es que se realiza de memoria automática de gestión, de modo que protege el desarrollador de la complejidad de la gestión de la memoria explícita .Este documento se describen los recolectores de basura disponibles para llevar a cabo la gestión de la memoria , y da algunosconsejos sobre la elección y configuración de un colector y el establecimiento de medidas para las áreas de memoria en que el colector opera . Sección 2 es para los lectores que son nuevos en el concepto de gestión de memoria automática. Tiene una breve discusión de los beneficios de esta gestión frente a requerir a los programadores espacio explícitamente deallocate de datos. La sección 3 presentauna visión general de los conceptos de recolección de basura en general , las opciones de diseño y rendimiento métricas . También introduce una organización de uso común de la memoria en diferentes áreas llamadas generaciones sobre la base de los tiempos de vida de los objetos esperados . Sección 4 resume los tipos de algoritmos de recolección utilizado y especifica cuándo sería apropiadoelegir ese colector .La sección 5 describe una técnica nueva en la versión J2SE 5.0 que combina ( 1 ) la selección automática de la basura colector , tamaños de almacenamiento dinámico y HotSpot JVM (cliente o servidor ), basado en la plataforma y el sistema operativo en el que la aplicación se está ejecutando , y (2 ) la recolección de basura tuning dinámico basado en el comportamiento deseadoespecificado por el usuario .Esta técnica se conoce como la ergonomía .
2 explícito vs Gestión Automática de Memoria
Gestión de la memoria es el proceso de reconocer cuando los objetos asignados ya no son necesarios , desasignar
( liberar ) la memoria utilizada por los objetos, y ponerla a disposición de las asignaciones posteriores. En algunos
lenguajes de programación , gestión de memoria esresponsabilidad del programador . La complejidad de la tarea
lleva a muchos errores comunes que pueden causar un comportamiento inesperado y se estrella programa o erróneo . como
En consecuencia, una gran proporción de tiempo de desarrollo a menudo se gastó depuración y tratando de corregir dichos errores.
Uno de los problemas que a menudo ocurre en los programas con gestión de memoria explícitaestá colgando referencias. es
posible para desasignar el espacio utilizado por un objeto a la que algún otro objeto todavía tiene una referencia . Si el objeto
con eso ( colgando ) Referencia intenta acceder al objeto original, pero el espacio ha sido reasignado a un nuevo
objeto, el resultado es impredecible y no lo que se pretendía .
Otro problema común con la gestión de la memoriaexplícita es fugas de espacio . Estas fugas se producen cuando la memoria está
asignado y ya no se hace referencia pero no se libera . Por ejemplo, si usted tiene la intención de liberar el espacio utilizado por un
lista enlazada , pero comete el error de simplemente desasignar el primer elemento de la lista, los elementos de la lista restantes
ya no se hace referencia sino que van fuera del alcancedel programa y no pueden ni ser utilizados ni recuperar. si
ocurren bastantes fugas , pueden seguir consumiendo la memoria hasta que se agote toda la memoria disponible .
Un enfoque alternativo a la gestión de la memoria que se utiliza ahora comúnmente , especialmente por los más modernos
lenguajes orientados a objetos , es la gestión automática mediante un programa llamado un recolector debasura . automático
gestión de memoria permite una mayor abstracción de las interfaces y el código más fiable.
Pagina 4
La recogida de basura se evita el problema de referencia colgando , porque un objeto que está siendo referenciado en algún lugar
nunca será basura recogida por lo que no será considerado libre . La recolección de basura también resuelve la fuga espacio
problema descrito...
Leer documento completo
Regístrate para leer el documento completo.