Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Verktøy for å finne en minnelekkasje
    Når et dataprogram trenger å lagre informasjon , det første må allokere minne . Etter at dataene er ikke lenger nødvendig, deallocates programmet minnet slik at et annet program kan gjøre bruk av den . Hvis et program tildeler minne uten deallocating minnet etterpå , vil det programmet blitt en belastning på systemressurser. Disse feilene er kalt " minnelekkasjer " og bli kvitt dem er en viktig del av debugging . Prosessen

    Uansett hvilket språk programmet er skrevet i , er den grunnleggende prosess for å finne minnelekkasjer det samme. Først må minnet lekkasje som skal detekteres . En minnelekkasje indikeres vanligvis av lineært økende minnebruk, selv om noen spesialiserte verktøy kan fortelle deg direkte hvor mye minne et program har bevilget eller deallocated . Når en minnelekkasje oppdages det må isoleres . Dette gjøres ved å teste hver funksjon eller objekt separat for å bestemme hvor lekkasjen er oppstått . Da programmerer må finne ut av feilen som er årsaken til lekkasjen og rette det opp.
    C /C + +

    Programmer skrevet i C og C + + er beryktet for å ha minne lekkasjer fordi brukeren må manuelt fordele og deallocate minnet ved hjelp av malloc kommando. Den ccmalloc verktøyet overvåker malloc funksjon og rapporter hva minne ble ikke deallocated ble deallocated flere ganger eller til og med tildelt uten å ha blitt deallocated i første omgang . Andre mer spesialiserte programmer som NJAMD ( " Not Just Another malloc Debugger ") også eksisterer for å finne minnelekkasjer i C og C + + .

    MSDN

    Utviklere ved hjelp av Microsofts utviklingsmiljø kan bruke ml kommandoen for å finne minnelekkasjer . Skrive ml på Cesh prompt vil få opp en liste over alle program som kjører og hvor mye minne som brukes , skrevet som "r /w = " etterfulgt av antall sider som programmet har bevilget . Uventede økninger i minnebruk tyde på at programmet har en minnelekkasje .
    Java

    Mange programmerere tror at Java-programmer er immune mot minnelekkasjer fordi programmereren er ikke ansvarlig for tildeling og deallocating minne, men de har fortsatt dukker opp . Java virtuell maskin , miljø som implementerer Java- programmer, har en automatisk garbage collector som deallocates minnet når den ikke lenger er referert til av andre klasser . Minnelekkasjer kan oppstå når minnet blir referert når det ikke lenger er nødvendig , slik at den som skal hoppes over av søppel samler . Jprobe er en debugger som kan ta øyeblikksbilder av minnebruk som et Java-program kjører , hjelpe programmerere å finne kilden til en minnelekkasje .

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan skrive en MFC API for Workstation Shutdown 
    ·Hvordan bruke kalkulator-verktøyet for CPP 
    ·Hvordan skrive en kø klasse i C + + 
    ·Hvordan skrive en Visual C program som bruker et Mens e…
    ·Hvordan sende FIFO Utgang til en fil 
    ·Hvordan bruke strcat funksjon i C + + 
    ·C Minnelekkasje Tools 
    ·Hvordan å kompilere et CPP på DOS 
    ·Slik hindrer C bufferoverløpene 
    ·Hvordan lage en trykknapp Invisible i Visual C 
      Anbefalte artikler
    ·Fordeler og ulemper ved å bruke flere tabeller i Visua…
    ·Slik importerer XML Bruke VBA 
    ·Hvordan legge til en Main til en fil i NetBeans 
    ·Boolsk logikk lar deg Hva 
    ·Hvordan Raise en hendelse i Visual Basic 
    ·List opp datatypene som brukes i å erklære variabler 
    ·Hvordan lage en CAPTCHA kode 
    ·Slik konverterer en negativ Binary til desimal 
    ·Slik Clear en matrise eller liste i Python 
    ·Hvordan bygge en telefonsvarer i VB6 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/