| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> Java programmering >> Content
    HashMap : Sådan fjerner årsagen til en Memory Leak
    Standard biblioteker til programmeringssproget Java giver klassen HashMap . En HashMap er en kortlægning fra nøgler til værdier , hvor nøgler og værdier kan tilhører en given Java-klasse . Blandt andre operationer , giver HashMap en metode til at finde værdien forbundet med en given nøgle og tilføje og slette (nøgle , værdi) par fra HashMap . HashMaps er en almindelig kilde til hukommelsesfejl fejl i Java-programmer : forekomster af nogle klasse styres korrekt af kode, men en programmeringsfejl forhindrer dem i at blive slettet fra HashMap , når de ikke længere er nødvendige . Fordi der er mindst én udestående henvisning til disse sjældne genstande , kan Java affaldsindsamling ikke genvinde deres hukommelse , så Java runtime sidste ende løber ud af bunke hukommelse . Instruktioner
    1

    Udfør Java-program med profiler værktøj ( Hprof ) aktiveret og logning dynge profiler. Den præcise måde at gøre dette afhænger af operativsystemet. For eksempel, på Linux starte programmet som følger : Hej

    java - Xrunhprof : file = myLog.txt , heap = sites mitpgm

    Erstat mitpgm ved navnet på din Java-program. Denne påkaldelse starter Java Virtual Machine (JVM ) i profilering mode; . JVM skriver output af profiler til at indgive myLog.txt
    2

    Gør din ansøgningsproces nogle arbejdsbyrde , således at objekter ( i især HashMaps ) allokeres og kasseres. Tage et snapshot af den bunke stat. For eksempel, på Linux profileren genererer et øjebliksbillede af heap s tilstand, når du udfører : Hej

    dræbe -3 jvmPID

    Udskift jvmPID med processen identifikator for JVM instans , der kører din ansøgning . Hprof føjer et snapshot af bunken til det aktuelle indhold af filen myLog.txt .
    3

    Gør din ansøgningsproces nogenlunde den samme mængde arbejdsbyrde , således at flere objekter oprettes og skrald - indsamlede . Tag endnu øjebliksbillede af heap s tilstand som i trin 2 .
    4

    Sammenlign de to snapshots taget i trin 2 og 3 . Især ser på linierne mellem " STEDER BEGIN " og " STEDER END ". Identificer de klasser , hvis objekter er steget mest i antal mellem de to øjebliksbilleder , det er dem , der er ansvarlige for memory leaks , da belastningen behandles af din ansøgning var nogenlunde konstant på tværs af de to øjebliksbilleder
    5.

    Undersøg . snapshots til at identificere de dele af koden tildeling objekter, der ikke får befriet efter behov. For at koncentrere sig om de linjer, der begynder med " TRACE " , der har en " " begivenhed på den følgende snapshot linje, for hver af de klasser, er identificeret i trin 4. .
    6

    Medtag manglende sletninger af referencer til problemet klasser for de dele af din kode er identificeret i trin 5 . De memory leaks ikke længere ske.

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan kompilere en eksekverbar JAR Fil 
    ·Sådan tilføjes knapper til en Java-applet 
    ·Sådan tilføjes en ComboBox til en formular i en Swing…
    ·Sådan Sorter 3 heltal i Java 
    ·Sådan tilføjes en ny metode i NetBeans 
    ·Hvordan kører jeg JSP Fra et Eclipse 
    ·Sådan Indstil en SVN i Eclipse 
    ·Sådan Ring en boolesk Method i Java i anden klasse 
    ·Sådan ændres en Java Random Rutinemæssig 
    ·Hvorfor Java Brug seler på betingede udsagn 
      Anbefalede Artikler
    ·WPS og JVM Heap Størrelser 
    ·Sådan ikke logge ind XP med en adgangskode 
    ·Hvordan man laver en Dashboard Widget med Dashcode 
    ·Sådan Indsæt en linje i en fil i VBS 
    ·Java exception handling Tutorials 
    ·Sådan redigeres en Grid Med PHP 
    ·Sådan Juster HTML-tabeller til højre for tekst 
    ·Sådan Konverter binære data til en Decimal i Perl 
    ·ActiveX komponent Tutorial 
    ·Sådan Lær VBA Coding 
    Copyright © Computer Viden http://www.computerdk.com