| Casa | Hardware | Redes | Programación | software | Criticar | Sistemas |   
Programación  
  • C /C + + Programming

  • Lenguajes De Programación

  • Delphi Programación

  • Programación Java

  • JavaScript Programación

  • Programación PHP /MySQL

  • Perl Programming

  • Python Programming

  • Rubí Programación

  • Visual Basics Programación
  •  
    Conocimientos Informáticos >> Programación >> Programación Java >> Content
    HashMap : Cómo eliminar la causa de una pérdida de memoria
    Las bibliotecas estándar para el lenguaje de programación Java proporciona la clase HashMap . Un HashMap es una asignación de teclas a los valores , donde las claves y los valores pueden pertenecer a cualquier clase Java dado. Entre otras operaciones, HashMap proporciona un método para encontrar el valor asociado a una clave dada y para agregar y eliminar ( clave, valor ) pares de la HashMap . HashMaps son una fuente común de errores de pérdida de memoria en los programas de Java : las instancias de una clase se gestionan correctamente por el código, pero un error de programación no posibiliten su borrado del HashMap cuando ya no se necesitan . Debido a que existe al menos una referencia excelente para los objetos huérfanos , recolector de basura de Java no puede recuperar su memoria, por lo que el tiempo de ejecución de Java al final se queda sin memoria heap. Instrucciones
    1

    Ejecutar la aplicación Java con la herramienta de perfiles ( HPROF ) activa y registro perfiles montón . La forma precisa de hacer esto depende del sistema operativo . Por ejemplo , en Linux , inicie la aplicación de la siguiente manera :

    java- Xrunhprof : file = mylog.txt , heap = sitios myApp

    myApp Reemplazar por el nombre de la aplicación Java. Esta invocación se inicia la máquina virtual de Java ( JVM ) en el modo de perfil , . La JVM escribe la salida del generador de perfiles para presentar mylog.txt
    2

    Haga su proceso de solicitud alguna carga de trabajo , por lo que los objetos ( en en particular , HashMaps ) se asignan y se desecha. Tomar una instantánea del estado del montón. Por ejemplo , en Linux, el generador de perfiles genera una instantánea del estado de la pila cuando se ejecuta :

    matar -3 jvmPID

    Reemplace jvmPID con el identificador de proceso de la instancia de JVM que ejecuta su aplicación . HPROF añade una instantánea del montón con el contenido actual de mylog.txt archivo.
    3

    Haga su proceso de aplicación más o menos la misma cantidad de carga de trabajo para que más objetos se crean y recolección de elementos . Tome otra instantánea del estado de la pila como en el paso 2 .
    4

    Compara las dos instantáneas tomadas en los pasos 2 y 3. En particular , mire la línea entre " SITES BEGIN" y " END SITIOS . " Identificar las clases cuyos objetos han aumentado más en número entre las dos instantáneas , esos son los responsables de las pérdidas de memoria , ya que la carga procesada por la aplicación era más o menos constante a lo largo de las dos instantáneas
    5

    Examinar . las instantáneas para identificar las partes del código de asignación de objetos que no se deje liberados cuando sea necesario. Para ello , se concentran en las líneas que comienzan con " TRACE " que tienen un evento " " en la siguiente línea de captura para cada una de las clases identificadas en el Paso 4 .
    6

    Incluya el supresiones que faltan referencias a las clases de problemas para las partes del código identificado en el paso 5 . Las pérdidas de memoria ya no suceden.

    Previous :

    next :
      Artículos relacionados
    ·Flash vs . Applet Java 
    ·Las ventajas de las etiquetas personalizadas 
    ·Cómo construir un reloj simple para un Android en Ecli…
    ·Cómo hacer una carta individual minúsculas en Java 
    ·Sobrecarga de métodos en Java 
    ·Cómo extraíble Java 
    ·Cómo calcular el porcentaje de caracteres en Java 
    ·Cómo limpiar el código Java 
    ·¿Qué dimensión de matriz Falta media en Programació…
    ·Cómo cerrar un JFrame 
      Artículos destacados
    ·Las ventajas de modularización en Programación 
    ·Cómo quitar el exponente de un flotador en C + + 
    ·¿Cómo resolver recursividad 
    ·Cómo convertir Int a flotar en Visual Basic 
    ·Vs fijo . Matriz dinámica en Visual Basic 
    ·Cómo convertir un PLC -5 a ControlLogix 
    ·. Cómo utilizar DataGridView a Insertar 
    ·Cómo crear una API con un código de Asamblea 
    ·Cómo cargar manual de la secuencia de MySQL 
    ·Cómo escribir mi propio manejador de excepciones en Ja…
    Copyright © Conocimientos Informáticos http://ordenador.wingwit.com