| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> Java Programming >> Content
    HashMap : Come rimuovere la causa di una perdita di memoria
    Le librerie standard per il linguaggio di programmazione Java forniscono la classe HashMap . Un HashMap è una mappatura da chiavi a valori, dove le chiavi ei valori possono appartenere a qualsiasi classe Java . Tra le altre operazioni , HashMap fornisce un metodo per trovare il valore associato a un dato chiave e per aggiungere e cancellare ( chiave, valore ) paia dal HashMap . HashMaps sono una comune fonte di errori di perdita di memoria in programmi Java : le istanze di una classe sono gestite correttamente dal codice , ma un errore di programmazione non ne consentono lo cancellato dalla HashMap quando non sono più necessari . Perché non vi è almeno un eccezionale riferimento a quegli oggetti orfani , Garbage Collector di Java non può recuperare la memoria , in modo che il runtime Java finalmente esaurisce la memoria heap . Istruzioni
    1

    eseguire l'applicazione Java con lo strumento profiler ( HPROF ) attivato e la registrazione dei profili di heap . Il modo preciso di fare questo dipende dal sistema operativo . Per esempio, su Linux , avviare l'applicazione come segue :

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

    Replace myApp con il nome della vostra applicazione Java . Questa invocazione inizia la Java Virtual Machine ( JVM ) in modalità di profilatura , . JVM scrive l'uscita del profiler di presentare mylog.txt
    2

    Rendere il processo di applicazione di alcuni carichi di lavoro , in modo che gli oggetti ( in particolare , HashMaps ) vengono allocate e scartato . Prendete una fotografia dello stato heap . Per esempio, su Linux , il profiler genera un'istantanea dello stato del mucchio quando si esegue :

    uccidere -3 jvmPID

    Sostituire jvmPID con l'identificatore di processo dell'istanza JVM che esegue l'applicazione . HPROF aggiunge una snapshot del mucchio per il contenuto corrente del file di mylog.txt .
    3

    rendere il processo di applicazione o meno la stessa quantità di carico di lavoro in modo che più gli oggetti sono creati e garbage collection . Prendete un'altra istantanea dello stato del mucchio come al punto 2 .
    4

    Confronta le due istantanee scattate nei passi 2 e 3 . In particolare , osservare le linee tra "siti BEGIN " e " SITI END ". Identificare le classi i cui oggetti sono aumentati più di numero tra le due istantanee , quelli sono i responsabili per le perdite di memoria , come il carico elaborato dalla vostra applicazione è stata pressoché costante tra le due istantanee
    5

    Esaminare . le istantanee per identificare le parti del codice di assegnazione oggetti che non vengono liberati quando necessario. Per questo , concentrarsi sulle linee che iniziano con "Trace" che hanno un evento " " sulla riga seguente snapshot, per ciascuna delle classi individuate nella Fase 4 .
    6

    Includere il delezioni mancanti dei riferimenti alle classi di problemi per le parti del codice identificati nella Fase 5 . Le perdite di memoria non è più accadere .

    Previous :

    next :
      Articoli Correlati
    ·Usi per HashCode in Java 
    ·Java Teoria e Pratica : Garbage Collection della JVM 1.…
    ·Get e Set metodo in Java 
    ·Comunicazione tra Applet Java 
    ·Come usare Java per creare servizi Web Apps 
    ·Che cosa è Errore Due nella Edit Rocket Java Compiler 
    ·Java Telaio Tutorials 
    ·Come esecuzione di codice Java su una macchina virtuale…
    ·Come firmare il codice in Java 
    ·Come gestire gli aggiornamenti Java sulla Rete 
      Articoli in evidenza
    ·Come fare il vostro proprio video giochi con Python 
    ·Come mettere un punto esclamativo in TWiki 
    ·Come ottenere l'ID di posizione della cella della rete …
    ·Come caricare i file in una sessione di PowerShell 
    ·La differenza in HashMap e HashSet 
    ·Come nascondere un elemento in Android ListView 
    ·Come convertire MyISAM a InnoDB in MySQL 
    ·Errori comuni in HTML Coding 
    ·Come fermare un ciclo in VBA 
    ·MySQL Error 1030 
    Copyright © Conoscenza Informatica http://it.wingwit.com