top 20 memory leak detection tools
Liste og sammenligning av de beste minnelekkasjedeteksjons- og administrasjonsverktøyene for Java, JavaScript, C, C ++, Visual Studio på Linux, Windows og Android-systemer:
Denne opplæringen vil introdusere deg for et nytt konsept som ikke er annet enn Memory Leak Management .
Systemprogrammene våre har en tendens til å få noen minneproblemer mens de kjører på maskiner, noe som igjen kan føre til ødeleggende minnetildeling.
Minnelekkasje forringer systemets ytelse ved å redusere mengden tilgjengelig minne for hvert program i systemet. Disse minneproblemene bestemmes og løses vanligvis av programmererne som får tilgang til kildekoden til programvaresystemet.
hvilken programvare trenger du for å lage en app
Dagens moderne operativsystemer kan tilpasses minneproblemer. De reduserer øyeblikkelig minneforbruk og frigjør minnet som brukes av applikasjonene når det er lukket.
I denne opplæringen vil vi se på hva minnelekkasje er akkurat opptatt av og hvordan vi skal håndtere verktøyene.
Hva du vil lære:
- Topp verktøy for gjenkjenning av minne og lekkasje
- # 1) GCeasy
- # 2) Formørkelse MAT
- # 3) Memcheck av Valgrind
- # 4) GlowCode
- # 5) AQTime av Smartbear
- # 6) WinDbg
- # 7) BoundsChecker
- # 8) Deleaker
- # 9) Dr. Memory
- # 10) Intel Inspector XE
- # 11) Forsikre ++
- # 12) Visual Leak Detector for Visual C ++ 2008-2015
- # 13) Visual Studio Profiler
- # 14) Mtuner
- # 15) Windows lekkasjedetektor
- # 16) AddressSanitizer (A San)
- # 17) GCViewer
- # 18) Plumbr
- # 19) .NET Memory Validator
- # 20) C ++ Memory Validator
- # 21) Dynatrace
- Ekstra minnelekkasjeverktøy
- Konklusjon
- Anbefalt lesing
Hva er minnelekkasje?
#1) Når et dataprogram unødvendig bruker minne og tildeler det feil, forårsaker det til slutt en minnelekkasje i systemet.
#to) Noen ganger frigjør ikke systemet uønsket minnetildeling, da det ikke frigjorde minnet selv etter at programmet eller programmet er stengt.
# 3) Når et program bruker mer enn det faktiske minnet som kreves, vil det oppstå minneproblemer og bremsing av systemytelsen.
# 4) Når det gjelder objektorientert programmering, hvis et objekt er lagret i minnet, men ikke tilgjengelig av programkoden (Definerte et objekt og tildelte minnet, men fremdeles får vi en feil om at objektet ikke er definert).
# 5) Det er noen programmeringsspråk som C og C ++ som ikke støtter automatisk søppelinnsamling implisitt og kan skape slike minnelekkasjeproblemer mens du jobber med det (Java bruker Garbage Collection-prosessen for å håndtere minnelekkasjen).
# 6) Minne lekkasje reduserer systemytelsen ved å redusere mengden tilgjengelig minne, øke mengden trash og til slutt forårsake systemfeil eller redusere hastigheten.
# 7) Memory Leak Management er mekanismen som kjører i operativsystemet for å fordele minnet dynamisk og frigjøres når det ikke er i bruk.
Typer minnelekkasjer
Minnelekkasjer kan kategoriseres i flere typer, og få av dem er forklart nedenfor.
- Lekkasjedatamedlem: Det tildelte minnet til klassemedlemmet blir fordelt før klassen blir ødelagt.
- Leket globalt minne: Lekker minne som ikke er en del av klassen som er opprettet, men som kan brukes av forskjellige funksjoner og metoder.
- Lekkert statisk minne: Lekker minne som er dedikert til en funksjon definert av klassen som er opprettet.
- Virtuelt minnelekkasje: Når en basisklasse ikke er erklært som virtuell, kan ikke destruktørene for det avledede objektet kalles.
- Ringer feil forhandler.
Memory Leak Management
#1) Minnelekkasje vedvarer når det ikke er noen referanse til minnetildeling.
#to) Slike minnelekkasjer får et program til å kjøre mer enn forventet tid og bruker overflødig minne ved å kjøre kontinuerlig i bakgrunnen eller på en server.
# 3) Bærbare enheter påvirkes mer av minnelekkasjer da de inneholder mindre minne og reduserer prosessorkapasiteten til en enhet.
# 4) Vi kan taEksempelav .NET Memory Leak Management System som,
- CLR (Common Language Runtime) tar seg av ressurstildeling i .NET og frigjør dem.
- .NET støtter 3 typer minnetildeling, for eksempel:
- Stable: Lagrer lokale parametere for variabel og metode. Henvisningen til hvert eneste objekt som lagres lagres på Stack.
- Unmanaged Heap: Uadministrert kode vil tildele objektet på en ikke-administrert stabel.
- Managed Heap: Administrert kode vil tildele objektet på en administrert stabel.
# 5) Søppeloppsamleren sjekker om gjenstandene som ikke er i bruk, og når de er funnet, blir de fjernet av søppeloppsamleren.
# 6) Garbage Collector styrer treet eller den graflignende strukturen for å sjekke applikasjonsrøttene til hvert direkte og indirekte tilgjengelig objekt, og hvis noen gjenstander som ikke er til stede blir funnet, legger den det ganske enkelt i søppelsamlingen.
Nå vil vi gjennomgå noen populære Memory Leak Management-verktøy som brukes mye for å håndtere minnelekkasjer.
******************
= >> Kontakt oss å foreslå en oppføring her.
*****************
Topp verktøy for gjenkjenning av minne og lekkasje
Nedenfor er listen over de mest brukte verktøyene for deteksjon og administrasjon av minnelekkasjer.
# 1) GCeasy
- Dette gratis verktøyet løser minneproblemer raskt og er kjent som en flott minneanalysator.
- Det er det aller første maskinstyrte Garbage Collection Log Analysis Tool.
- Støtter også alle Android GC-logger, bruker maskinlæringsalgoritme for å oppdage minneproblemer og også varsler om fremtidige problemer.
- Automatisk oppdagelse av problemer, øyeblikkelig online GC-analyse, enhetlig GC-loggeanalyse er noen av de viktigste funksjonene i dette verktøyet.
Klikk her for å navigere til GCeasy Official nettsted.
# 2) Formørkelse MAT
- Eclipse MAT er kjent som en rask og omtalt Java Heap Analyzer.
- Dette verktøyet hjelper til med å redusere minneforbruk og oppdage minnelekkasjer.
- Genererer automatiske rapporter som genererer informasjon om feilen som hindrer søppeloppsamleren i å samle gjenstander.
- Hovedfokuset for dette verktøyet er fortsatt på høyt minneforbruk og Minne-feil.
- Dette prosjektet inkorporerer med Eclipse Photon, Eclipse Oxygen, Neon, Kepler etc.
Klikk her for å navigere til Eclipse MAT Official site.
# 3) Memcheck av Valgrind
- Memcheck kan oppdage følgende minneproblemer basert på malloc, nye, gratis og slett minnesamtaler:
-
- Ikke-initialisert minne
- Mistede pekere
- Bruke frigjort minne
- Tilgang til upassende områder på bunken
-
- Den sjekker og dirigerer parametere automatisk hvor de enn er definert.
- Memcheck av Valgrind er kommersiell programvare for å oppdage minnefeil.
- Det er nyttig å oppdage minnefeil som oppstår i C og C ++.
- Memcheck sjekker også om bufferen som er definert av programmet er adresserbar eller ikke.
- Memcheck holder oversikt over dyngblokker for å gjenkjenne den ufrie blokken når programmet er avsluttet.
Klikk her for å navigere til det offisielle nettstedet til Memcheck.
# 4) GlowCode
- GlowCode er en dedikert kommersiell ytelses- og minneanalysator i sanntid for Windows og .NET Framework.
- GlowCode identifiserer minnelekkasjer i applikasjonene som kjører, skrevet på C ++, C # eller NET-kompatibelt språk.
- Den sjekker også ytelsesflyt, kodedekning og overdreven minneforbruk.
- Støtter Windows 10 og Windows Server 2016 og gir tidlig oppdagelse av ytelses- og minneproblemer i det løpende systemet.
- Støtter innfødt, administrert og blandet kode.
Klikk her for å navigere til det offisielle nettstedet til GlowCode.
# 5) AQTime av Smartbear
- AQTime er det proprietære verktøyet fra Smartbear som støtter Delphi, C #, C ++, .NET, Java etc.
- Oppdager minnelekkasjer, ytelsesflaskehals og kodedekningshull i applikasjonssystemet.
- Analyserer effektivt informasjon om komplekst minne og ytelse for å identifisere feilen med grunnårsaken.
- Den raskeste tilnærmingen for å oppdage minnelekkasjer, manglende kodedekning og ytelsesflaskehals.
- Topp-til-bunn-Delphi-analyse av applikasjonen for å identifisere minne og ressurslekkasje.
Klikk her for å navigere til AQTime Official-siden.
# 6) WinDbg
- Windbg for Windows brukes til å identifisere kjerneminnedumper og undersøke CPU-registeret.
- Den kommer i en annen versjon for Windows-enheter, web- og skrivebordsprogrammer.
- Funksjonen ved å identifisere krasjdumper i brukermodus er kjent som ‘Post –Mortem Debugging’.
- Du kan distribuere DLL-utvidelser for å feilsøke Command Language Runtime (CLR).
- Windbg leveres med forhåndslastet Ext.dll som brukes som standard Windows Debugger-utvidelse.
Klikk her for å navigere til Windbg Official site.
# 7) BoundsChecker
- Dette er det proprietære verktøyet for minne og API-valideringsverktøy for C ++ programvare.
- Det er to ActiveCheck og FinalCheck, ActiveCheck utføres mot søknaden og FinalCheck brukes til å kontrollere instrumentets instrumentform.
- ActiveCheck kan oppdage minnelekkasjer ved å overvåke API- og COM-samtaler.
- FinalCheck kommer med funksjoner i ActiveCheck sammen med muligheten til å oppdage bufferoverløp og udefinert minne.
- Memory Overrun Detection er den beste funksjonen som BoundsChecker er kjent for.
Klikk her for å navigere til det offisielle nettstedet til BoundsChecker.
# 8) Deleaker
- Deleaker er et frittstående proprietært minnelekkasjeverktøy og brukes også som Visual C ++ -utvidelse.
- Oppdager også minnelekkasjer i heap og virtuelt minne, og integreres enkelt med hvilken som helst IDE.
- Den frittstående versjonen feilsøker applikasjonen for å vise den nåværende tildelingen av objekter.
- Støtter alle 32-biters og 64-biters system og fullt integrert med Visual Studio.
- Genererer rike rapporter og eksporterer det endelige resultatet til XML.
Klikk her for å navigere til det offisielle nettstedet til Deleaker.
# 9) Dr. Memory
- Dr. Memory er et gratis minneovervåkingsverktøy for Windows, Linux og Mac.
- Dette verktøyet er i stand til å identifisere uinitialisert og ikke-adresserbart minne og frigjort minne.
- Dr. Memory definerer tre typer feil:
-
-
- Fortsatt tilgjengelig sted: minne tilgjengelig av applikasjonen.
- Lekke: minne som ikke kan nås av applikasjonen.
- Mulig lekkasje: Minne som er tilgjengelig via pekere.
-
-
- Videre definerer den to typer lekkasjer som en direkte og Indirekte lekke.
Klikk her for å navigere til det offisielle nettstedet til Deleaker.
# 10) Intel Inspector XE
- Dette proprietære verktøyet hjelper til tidlig oppdagelse av minnelekkasjer og bidrar til å redusere utgifter for å fikse minnelekkasjer.
- Kjent som feilsøking for C, C ++ applikasjoner som kjører på Windows og Linux uten å bruke noen spesiell kompilator.
- Den er også tilgjengelig som en del av Intel Parallel Studio XE og Intel System Studio.
- Intel Inspector XE utfører statisk og dynamisk analyse for å identifisere årsaken til minnelekkasjer.
- Dynamisk analyse oppdager komplekse grunnårsaker til minnelekkasjer som ikke oppdages av statisk analyse.
- Den oppdager ødelagt minne, ulovlig minnetilgang, ikke-initialisert minne og inkonsekvent minne etc.
Klikk her for å navigere til Intel Inspector XE Official site.
# 11) Forsikre ++
- Parasoft Insure ++ er den proprietære kommersielle minnedebuggeren for C / C ++.
- Oppdager automatisk unøyaktige brudd på array-bånd, minne som ikke er tildelt.
- Kunne utføre stakksporing når en faktisk lekkasje oppstod.
- For settet med testet kode produserer Insure ++ Linear Code Sequence og Jump Code Sequence.
Klikk her for å navigere til Insure ++ Official site.
# 12) Visual Leak Detector for Visual C ++ 2008-2015
- Visual Leak Detector er et gratis, åpen kildekode-minne lekkasjedeteksjonsverktøy for C / C ++.
- Diagnostiserer raskt minnelekkasjer i C ++ - applikasjonen og velger modulen som må ekskluderes fra minnelekkasjen.
- Visual C ++ gir innebygd lekkasjedeteksjon med et komplett sett med lekke blokker.
- Tilpassbare og detaljerte minnelekkasjerapporter er den beste funksjonen i dette verktøyet.
- Aktiverer full dokumentert kildekode til biblioteket.
Klikk her å navigere til the Offisiell side for Visual Leak Detector.
# 13) Visual Studio Profiler
- Visual Studio leveres med Memory Usage Tool som hjelper til med å oppdage minnelekkasjer og ineffektivt minne.
- Dette verktøyet brukes til stasjonære apper, ASP.NET-apper og Windows-apper.
- Du kan ta øyeblikksbilder av administrert og naturlig minne og analysere enkelt øyeblikksbilder for å forstå effekten av et objekt på minnet.
- Du kan bruke mer enn ett øyeblikksbilde for å finne årsaken til overflødig minnebruk.
- Aktiverer full dokumentert kildekode til biblioteket.
Klikk her å navigere til the Offisiell side for Visual Studio Profiler.
# 14) Mtuner
- Mtuner er en minnelekkasjer som brukes til Windows-applikasjoner og PlayStation.
- Tilbyr tilleggsfunksjoner for minneprofilering.
- Mtuner kan håndtere et antall tildelinger per sekund med lineær ytelsesskalering.
- Mtuner kommer med kommandolinjebasert profilering som er nyttig for å spore daglige endringer i minnebruk.
Klikk her å navigere til the Mtuner Offisiell side.
# 15) Windows lekkasjedetektor
- Windows Lekkasjedetektor er et verktøy for gjenkjenning av minnelekkasjer for Windows-applikasjoner.
- Noen viktige Windows Lekkasjedetektorer er:
-
-
- Ingen kildekode er nødvendig, og hvis den er der, krever færre endringer.
- Kan analysere hvilket som helst Windows-program skrevet på hvilket som helst språk.
- Effektiv og best egnet for applikasjoner utviklet i et syklisk mønster.
-
-
- Dette verktøyet er under utvikling og har fortsatt noen begrensninger:
-
-
- Du kan bare administrere en enkelt prosess om gangen. Inter-prosess kommunikasjonsfunksjonen blir lagt til i fremtiden.
- Den analyserer bare funksjonene HeapAlloc, HeapRealloc og HealFree.
-
-
Systemutviklere av systemet jobber med å legge til flere minnefunksjoner som HeapCreate.
Klikk her å navigere til the Offisielt nettsted for Windows Lekkasjedetektor.
# 16) AddressSanitizer (A San)
- Dette åpen kildekodeverktøyet er designet for å oppdage minnelekkasjer i C / C ++ - programmet.
- Det raskeste verktøyet består av Compiler Instrumentation Module og Run-time library.
- Dette verktøyet finner Heap and Stack bufferoverløp og minnelekkasjer.
- LeakSanitizer er integrert med AddressSanitizer som gjør jobben med minnelekkasjedeteksjon.
- Med LeakSanitizer kan vi spesifisere instruksjonene om å ignorere noen minnelekkasjer ved å sende den i en egen undertrykkelsesfil.
- Dette verktøyet støttes på Linux, Mac, OS X, Android og iOS Simulator.
Klikk her å navigere til the AddressSanitizer Offisiell side.
# 17) GCViewer
- GCViewer er et gratis verktøy generert av IBM, HP, Sun Oracle og BEA JVMs.
- Dette verktøyet brukes til å analysere og analysere GC-loggfiler.
- Du kan generere dataene i CSV-format som regnearkapplikasjonen.
- Det fungerer på Verbose Garbage Collection. Verbose Garbage Collection er kort sagt:
-
- En hendelsesbasert generering av søppelinnsamling for hver operasjon.
- Utgangen Verbose Garbage Collection inneholder trinn-ID og lokal tidsstempel.
-
Klikk her å navigere til the Offisielt nettsted for GCViewer.
# 18) Plumbr
hvordan du legger til en verdi i en array-java
- Det er et proprietært kommersielt verktøy som brukes til å kontrollere minnelekkasjer og søppeloppsamling i JVM-applikasjonen.
- Plumbr er basert på to viktige moduler, for eksempel en agent og en portal.
- Agenten støtter JVM og sender informasjon om søppel og minnelekkasje til portalen.
- Du kan se informasjonen om minnebruk og heap på portalen.
- Verktøyet bruker en deteksjonsalgoritme som er basert på analyse av ytelsesdata.
Klikk her å navigere til the Offisiell side for Plumbr.
# 19) .NET Memory Validator
- .NET Memory Validator er en kommersiell minnelekkasjeanalysator, en minneprofiler som brukes til programvareutvikling og kvalitetssikring.
- Kjent som den raskeste måten å overvåke flere minnetildelinger som gir flere innsikter som:
-
- Tildelinger: Viser fargekodede tildelingsstatistikker basert på klasse og
metoden definert for tildeling av funksjon. - Objekter: Objektvisning viser fargekodet objekt og minnetildeling
statistikk for applikasjonene som kjører. - Generasjoner: Viser antall objekter per objekttype for hvert objekt
generasjon tildelt av applikasjonen. - Hukommelse: Minnevisning viser gjeldende objekt med informasjon om
objekttype, tildelingsstørrelse og samtalestak, tidsstempel. - Analyse: Denne visningen viser minnebruk.
- Tildelinger: Viser fargekodede tildelingsstatistikker basert på klasse og
-
- De viktigste funksjonene til dette verktøyet inkluderer gjenkjenning av minnelekkasjer, håndtering av minnelekkasjer, kjøring av regresjonstester for å identifisere minnelekkasjer.
- .NET Memory validator er kompatibel med alle versjoner av .NET framework og CLR.
- Enkel å bruke, et konfigurerbart, kraftig og flerbruksverktøy for å identifisere minnelekkasjer.
Klikk her å navigere til the. NET Memory validator Offisielt nettsted.
# 20) C ++ Memory Validator
- Akkurat som .NET Memory Validator, er dette verktøyet også en kommersiell minnelekkasjedetektor og analysator.
- C ++ Memory Validator gir flere innsikter som:
-
- Hukommelse: Viser informasjonen om tildelt og lekket minne og sporer feilmeldinger. Dataene vises i en trestruktur som kan velges og filtreres.
- Objekter: Viser objektstatistikk med objekttype og tildelte, omdelte og omdisponerte objekter.
- Dekning: Denne visningen gir informasjon om minnebruk. Verktøyet leveres med filtre som fjerner tredjepartsfilene.
-
- Auto-Merge Facility hjelper til å slå sammen flere statistikker fra flere innsikter for å danne en sammensatt dekning for regresjonstestpakken.
- Bortsett fra disse innsiktene, gir verktøyet tidslinje, hotspot, størrelser og analyse av applikasjonen.
- Kraftig og konfigurerbart verktøy kompatibelt med Microsoft C og C ++, Intel C ++ etc.
Klikk her å navigere til the C ++ Memory Validator Offisiell side.
# 21) Dynatrace
- Dynatrace er et kommersielt verktøy som støtter All-in-One Performance Management og inkluderer full-stack overvåking, enkelt transaksjonsanalyse.
- Det gir verktøy for gjenkjenning av minnelekkasjer for å bestemme minneforbruk.
- Dynatrace Java-minneverktøy for gjenkjenning av lekkasjer er tilgjengelig for applikasjoner skrevet i Java og .NET Profiler Tools brukes til applikasjoner som kjører i Java.
- Med sin unike hotspot-visning kan du finne et objekt som ikke bruker minnet effektivt.
- Du kan utføre minneutvikling av minnebruk. Dette verktøyet hjelper deg med å identifisere objektene som kontinuerlig øker minneforbruket og ikke blir plassert riktig fra minnet.
Klikk her å navigere til the Offisielt nettsted for Dynatrace.
Ekstra minnelekkasjeverktøy
Dette er noen mye brukte verktøy for å oppdage minnelekkasjer. Igjen er listen ennå ikke ferdig her, det er også noen andre verktøy som brukes til å oppnå samme formål.
Vi vil gjennomgå dem kort:
# 22) NetBeans Profiler :
NetBeans Profiler er et proprietært Java-profileringsverktøy utviklet med funksjoner som minne, tråder, SQL-spørsmål osv. I dag kommer dette verktøyet med noen nye og avanserte funksjoner for å håndtere tråddumpene.
URL: NetBeans Profiler
# 23) Mtrace :
Mtrace er innebygd med glibc (GNUC er et biblioteksprosjekt for vellykket implementering av C-standardbibliotek) som brukes til å oppdage minnelekkasjer forårsaket av uvanlige malloc / gratis-samtaler.
En gang kalt stopper det allokering av minne til objektene. Mtrace Perl-skript brukes til å skanne loggfilen som er opprettet for minnelekkasjer. Hvis du oppgir kildekoden til den, kan du også forstå den nøyaktige plasseringen der problemet oppstod.
URL: Mtrace
# 24) Java Visual VM :
Visual VM er et veldig nyttig verktøy for utviklere å spore og spore minnelekkasjer. Den analyserer haugdata og søppeloppsamler. Det sikrer optimal bruk av minne og bidrar til å forbedre applikasjonsytelsen.
Tilbyr funksjoner som trådanalyse og høydepumpeanalyse for å løse kjøretidsproblemer.
Her er vi ferdige med mest populære Memory Leak Management Tools. Vi kan velge ett eller flere i henhold til kritiske minneområder i systemet vårt.
Med bruk av denne programvaren kan vi ikke bare gjøre oppgaven enklere, men også redusere tidsforbruket som kreves for å oppdage minnelekkasjer, noe som er relativt kjedelig.
URL: Java Visual VM
Konklusjon
Verktøy for administrering av minnelekkasjer reduserer andelen innsats og tid brukt på minnehåndtering. Å administrere minnetilgang og tildeling og sporing av lekkasjer er en så viktig oppgave da Memory er ryggraden i hvilken som helst programvare for å beholde og administrere dataene dine effektivt.
Igjen, uten riktig minnetildeling, kan man ikke engang kjøre applikasjonssystemet. For å unngå systemfeil og forbedre ytelsen, må vi utføre minnelekkasjebehandling.
Med tanke på dette behovet bruker mange organisasjoner verktøyene som er tilgjengelige for dette, mens det til slutt vil gjøre ting lettere for dem og sluttbrukeren.
******************
= >> Kontakt oss å foreslå en oppføring her.
******************
Anbefalt lesing
- Hvordan fikse minnelekkasje i Android-apper ved hjelp av DDMS-verktøyet
- Beste verktøy for testing av programvare 2021 [QA Test Automation Tools]
- Java-distribusjon: Opprettelse og utføring av Java JAR-fil
- Java Virtual Machine: Hvordan JVM hjelper med å kjøre Java-applikasjoner
- Få tilgang til modifikatorer i Java - opplæring med eksempler
- Java Reflection Tutorial med eksempler
- Introduksjon til Java Programming Language - Video Tutorial
- 25 beste Java-testrammer og verktøy for automatiseringstesting (del 3)