|  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 >> C /C + + -programmering >> Content

    Verktyg för att ta en minnesläcka

    När ett datorprogram behöver för att lagra information , det första behöver allokera minne . Efter att data inte längre behövs , deallokerar programmet minnet så att ett annat program kan använda sig av det . Om ett program allokerar minne utan avallokering minnet efteråt , kommer detta program att bli en belastning på systemresurserna . Dessa fel kallas " minnesläckor " och bli av med dem är en viktig del av felsökning . Process

    Oavsett vilket språk programmet är skrivet i , är den grundläggande processen för att hitta minnesläckor densamma . Först måste minnesläcka som skall detekteras. En minnesläcka brukar anges med linjärt ökande minnesanvändning , även om vissa specialiserade verktyg kan berätta direkt hur mycket minne ett program har tilldelats eller avallokerats . När en minnesläcka upptäcks det måste isoleras . Detta görs genom att testa varje funktion eller ett objekt för sig för att avgöra var läckan sker . Då programmeraren måste räkna ut det specifika felet som orsakar läckan och åtgärda det .
    C /C + +

    Program skrivna i C och C + + är ökända för att ha minne läckor eftersom användaren måste manuellt fördela och deallocate minne med malloc kommandot . Den ccmalloc Verktyget övervakar malloc funktion och rapporter vad minnet inte avallokerats , var avallokeras flera gånger eller till och med tilldelats utan att ha avallokerats i första hand . Andra mer specialiserade program som NJAMD ( " Not Just Another Malloc Debugger " ) finns också för att hitta minnesläckor i C och C + +.
    MSDN

    Utvecklare använda Microsofts utvecklingsmiljö kan använda ml kommandot för att hitta minnesläckor . Skriva ml vid Cesh prompten kommer få upp en lista över alla program som körs och hur mycket minne som används , skrivs som " r /w = " följt av det antal sidor som ansökan har tilldelats . Oväntade ökningar i minnesanvändning indikerar att programmet har en minnesläcka .
    Java

    Många programmerare tror att Java- program är immuna mot minnesläckor eftersom programmeraren inte är ansvarig för fördelning och avallokering minne , men de fortfarande dyker upp . Java virtuell maskin , miljön som implementerar Java-program , har en automatisk sophämtare som deallokerar minnet när det inte längre refereras av andra klasser . Minnesläckor kan uppstå när minnet håller på att refereras när det inte längre behövs , vilket gör att den kan hoppas över av sophämtare . Jprobe är en debugger som kan ta ögonblicksbilder av minnesanvändningen som ett Java-program körs , hjälper programmerare att hitta källan till en minnesläcka .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur Stream Live Video i Xcode
    ·Lägga till inflödet av Visual C
    ·Hur man gör Int del av C + + String
    ·Hur man Byta namn på en fil i Visual Studio C
    ·Hur man gör Spike Borstar I GtkRadiant
    ·Hur man gör Strings gemener på C + +
    ·Typer av buggar formatsträngssårbarheter
    ·Hur man skriver ett program för att konvertera gemener…
    ·Hur man gör en Stickman i C + +
    ·Hur man öppnar en fil i C + + för läsning
    Utvalda artiklarna
    ·Hur man kan stoppa en Comport Event VB6.0
    ·Hur man använder Void Pekare i C
    ·Hur man skapar en ram med användning av HTML -programm…
    ·Hur man skapar en anställd Logga in Visual Basic
    ·Hur man binda en ordbok för att DropDownList
    ·Hur att bädda in en sida i en div-tagg
    ·Hur man arbetar med XSD filer
    ·Varför använder Java hängslen på villkorssatser
    ·Hur man skapar MySQL-databaser för att installera DSN
    ·Hur man läser binärkod
    Copyright © Dator Kunskap http://www.dator.xyz