Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> Java Programming >> Content

    HashMap : Hur man tar bort orsaken till en minnesläcka

    standardbiblioteken för programmeringsspråket Java ger klassen HashMap . En HashMap är en kartläggning från nycklar till värden , där nycklar och värden kan tillhöra en viss Java-klass . Bland övriga verksamheter , ger HashMap en metod för att hitta värdet associerat till en viss nyckel och lägga till och ta bort ( nyckel , värde ) par från HashMap . HashMaps är en vanlig felkälla minnesläcka i Java -program : instanser av en viss klass hanteras korrekt av koden , men ett programmeringsfel hindrar dem från att raderas från HashMap när de inte längre behövs . Eftersom det finns åtminstone en enastående hänvisning till dessa anonyma objekt kan Javas sophämtare inte kräva tillbaka deras minne , så att Java Runtime småningom tar slut heap minne . Instruktioner
    1

    Kör Java-applikationen med profilerare verktyget ( Hprof ) aktiveras och loggning heap -profiler . Det exakta sättet att göra detta beror på operativsystemet. Till exempel , om Linux , starta programmet enligt följande :

    java - Xrunhprof : file = myLog.txt , upplag = sajter myApp

    Ersätt myApp av namnet på din Java-program . Denna åkallan startar Java Virtual Machine ( JVM ) i profilering läge , . JVM skriver produktionen av profiler till fil myLog.txt
    2

    Gör din ansökningsprocess viss arbetsbelastning , så att föremål ( i synnerhet ) HashMaps fördelas och kasseras . Ta en ögonblicksbild av högen staten . Till exempel , om Linux , genererar Profiler en ögonblicksbild av högen state när du kör :

    döda -3 jvmPID

    Byt jvmPID med processen identifierare av JVM -instans som körs din ansökan . Hprof bifogar en ögonblicksbild av högen till det aktuella innehållet i filen myLog.txt .
    3

    Gör din ansökningsprocessen ungefär samma mängd arbetsbelastning så att fler objekt skapas och skräpsamlas . Ta en annan ögonblicksbild av högen är staten som i steg 2 .
    4

    Jämför de två ögonblicksbilder tagna i steg 2 och 3 . I synnerhet , titta på linjerna mellan " PLATSER BEGIN " och " PLATSER SLUT . " Identifiera de klasser vars objekt har ökat mest i antal mellan de två snapshots , de är de som ansvarar för minnesläckor , eftersom lasten behandlas av din ansökan var ungefär konstant över de två snapshots
    5

    Undersök . snapshots för att identifiera de delar av koden fördela objekt som inte blir befriade när det behövs . För att koncentrera sig på de rader som börjar med "spår " som har en " " händelsen på följande ögonblicksbild linjen , för alla de klasser som anges i steg 4 .
    6

    Inkludera saknade deletioner av hänvisningar till lektioner för de delar av koden som identifierats i steg 5. De minnesläckor inte längre hända .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur till Redigera Marginaler i JEditorPane
    ·Hur får man den Maven Pom Version på våren
    ·Varför Beräkna en oföränderlig String hash värde
    ·Hur Ring standardkonstruktor i Java
    ·Hur man tar bort dubbletter från en Array i Java
    ·Hur man gör exponenter i Java
    ·Hur man tar bort dubbletter från en karta i Java
    ·NetBeans : Hur man lägger till bilder i ett webbprojek…
    ·Hur hitta Chromatic Polynom i Java
    ·Hur läsa text från SWF i Java
    Utvalda artiklarna
    ·Kryptering Bibliotek för VBA
    ·Hur Design Joomla menymallar
    ·Hur man gör kommentarer i en PHP -fil
    ·Klassvariabler av Java Coding
    ·Hur man lär sig PHP Web Design
    ·Hur man deklarerar variabler i ActionScript
    ·CNC-bearbetning Basics
    ·Hur man använder Split i VB
    ·Hur att skapa säkra DNN -moduler
    ·Så lägger listrutorna i datagrids i Asp.NET
    Copyright © Dator Kunskap http://www.dator.xyz