top 20 memory leak detection tools
Liste og sammenligning af de øverste værktøjer til registrering af hukommelseslækage og styring til Java, JavaScript, C, C ++, Visual Studio på Linux, Windows og Android-systemer:
Denne vejledning introducerer dig til et nyt koncept, der ikke er andet end Hukommelseslækagestyring .
Vores systemprogrammer har tendens til at få nogle hukommelsesproblemer, mens de kører på maskiner, hvilket igen kan medføre ødelæggelse af hukommelsestildelinger.
Hukommelseslækage forringer systemets ydeevne ved at reducere mængden af hukommelse, der er tilgængelig for hvert program i dit system. Disse hukommelsesproblemer bestemmes og løses generelt af de programmører, der får adgang til kildekoden til softwaresystemet.
virtual reality kompatibel med xbox one
Dagens moderne operativsystemer kan tilpasses hukommelsesproblemer. De reducerer øjeblikkeligt hukommelsesforbruget og frigiver den hukommelse, der er optaget af applikationerne, når den er lukket.
I denne vejledning gennemgår vi, hvad hukommelseslækage er nøjagtigt beskæftiget med, og hvordan man håndterer dets værktøjer.
Hvad du lærer:
- Topværktøj til detektering og styring af hukommelseslækage
- # 1) GCeasy
- # 2) Formørkelse MAT
- # 3) Memcheck af Valgrind
- # 4) Glødekode
- # 5) AQTime af Smartbear
- # 6) WinDbg
- # 7) BoundsChecker
- # 8) Deleaker
- # 9) Dr. Memory
- # 10) Intel Inspector XE
- # 11) Forsikre ++
- # 12) Visuel lækagedetektor til Visual C ++ 2008-2015
- # 13) Visual Studio Profiler
- # 14) Mtuner
- # 15) Windows lækagedetektor
- # 16) AddressSanitizer (A San)
- # 17) GCViewer
- # 18) Plumbr
- # 19) .NET Memory Validator
- # 20) C ++ Memory Validator
- # 21) Dynatrace
- Yderligere værktøjer til hukommelseslækage
- Konklusion
- Anbefalet læsning
Hvad er hukommelseslækage?
# 1) Når et computerprogram unødigt bruger hukommelse og allokerer den forkert, forårsager det i sidste ende en hukommelseslækage i systemet.
#to) Nogle gange frigiver systemet ikke uønsket hukommelsesallokering, da det ikke frigav hukommelsen, selv efter at programmet eller programmet er lukket.
# 3) Når et program bruger mere end den aktuelle krævede hukommelse, vil der som følge heraf opstå hukommelsesproblemer og nedsættelse af systemets ydeevne.
# 4) Med hensyn til objektorienteret programmering, hvis et objekt er gemt i hukommelsen, men ikke tilgængeligt af programkoden (Defineret et objekt og tildelt hukommelsen, men stadig får vi en fejl om, at objektet ikke er defineret).
# 5) Der er nogle programmeringssprog som C og C ++, der ikke understøtter automatisk affaldsindsamling implicit og kan skabe sådanne hukommelseslækageproblemer, mens du arbejder på det (Java bruger Garbage Collection-processen til at håndtere hukommelseslækage).
# 6) Hukommelseslækage reducerer systemets ydeevne ved at reducere mængden af tilgængelig hukommelse, øge mængden af thrash og til sidst forårsage systemfejl eller sænke.
# 7) Memory Leak Management er den mekanisme, der kører i operativsystemet for at allokere hukommelsen dynamisk og frigives, når den ikke er i brug.
Typer af hukommelseslækage
Hukommelseslækage kan kategoriseres i flere typer, og få af dem forklares nedenfor.
- Lækket datamedlem: Den tildelte hukommelse til klassemedlemmet omplaceres, før klassen ødelægges.
- Lækket global hukommelse: Lækker hukommelsen, som ikke er en del af den oprettede klasse, men kan bruges af forskellige funktioner og metoder.
- Lækket statisk hukommelse: Lækker hukommelsen, der er dedikeret til en funktion defineret af den oprettede klasse.
- Virtuel hukommelseslækage: Når en basisklasse ikke erklæres som virtuel, kan destruktørerne for det afledte objekt ikke kaldes.
- Ringer til den forkerte deallocator.
Hukommelseslækagestyring
# 1) Hukommelseslækage vedvarer, når der ikke er nogen henvisning til hukommelsestildeling.
#to) Sådanne hukommelseslækager får et program til at køre mere end den forventede tid og bruger overskydende hukommelse ved løbende at køre i baggrunden eller på en server.
# 3) Bærbare enheder påvirkes mere af hukommelseslækage, da de indeholder mindre mængde hukommelse og reducerer en enheds processorkapacitet.
# 4) Vi kan tageEksempelaf .NET Memory Leak Management System som,
- CLR (Common Language Runtime) tager sig af ressourcetildeling i .NET og frigiver dem.
- .NET understøtter 3 typer hukommelsesallokering såsom:
- Stak: Gemmer lokale variabel- og metodeparametre. Henvisningen til hvert eneste oprettede objekt lagres på Stack.
- Ikke-administreret bunke: Ustyret kode tildeler objektet på en ikke-administreret stak.
- Administreret bunke: Administreret kode tildeler objektet på en administreret stak.
# 5) Affaldssamleren kontrollerer, om objekterne ikke er i brug, og når de først er fundet, fjernes de af affaldssamleren.
# 6) Garbage Collector administrerer træet eller den graflignende struktur til at kontrollere applikationsrødderne til hver direkte og indirekte tilgængelige objekter, og hvis der findes genstande, der ikke er til stede, placerer den det simpelthen i skraldesamlingen.
Nu gennemgår vi nogle populære Memory Leak Management-værktøjer, der bruges meget til at styre hukommelseslækage.
******************
= >> Kontakt os at foreslå en liste her.
*****************
Topværktøj til detektering og styring af hukommelseslækage
Nedenfor er listen over mest anvendte værktøjer til registrering af hukommelseslækage.
# 1) GCeasy
- Dette gratis værktøj løser hukommelsesproblemer hurtigt og er kendt som en stor hukommelsesanalysator.
- Det er det allerførste maskinstyrede Garbage Collection Log Analysis Tool.
- Understøtter også alle Android GC-logfiler, bruger maskinlæringsalgoritme til at opdage hukommelsesproblemer, der opstår, og underretter også om de fremtidige problemer.
- Automatisk problemregistrering, øjeblikkelig online GC-analyse, samlet GC-logningsanalyse er nogle af de vigtige funktioner i dette værktøj.
Klik på her for at navigere til GCeasy Official site.
# 2) Formørkelse MAT
- Eclipse MAT er kendt som en hurtig og fremhævet Java Heap Analyzer.
- Dette værktøj hjælper med at reducere hukommelsesforbruget og opdage hukommelseslækager.
- Genererer automatiske rapporter, der genererer oplysninger om fejlen, der forhindrer affaldssamleren i at samle genstande.
- Hovedfokus for dette værktøj forbliver på det høje hukommelsesforbrug og fejl uden hukommelse.
- Dette projekt inkorporerer med Eclipse Photon, Eclipse Oxygen, Neon, Kepler osv.
Klik på her for at navigere til Eclipse MAT officielle side.
# 3) Memcheck af Valgrind
- Memcheck kan registrere følgende hukommelsesproblemer baseret på malloc, nye, gratis og slette hukommelsesopkald:
-
- Ikke-initialiseret hukommelse
- Mistede henvisninger
- Brug af fri hukommelse
- Adgang til upassende områder på stakken
-
- Det kontrollerer og dirigerer parametre automatisk, uanset hvor de er defineret.
- Memcheck af Valgrind er kommerciel software til at opdage hukommelsesfejl.
- Det er nyttigt at opdage hukommelsesfejl, der opstår i C og C ++.
- Memcheck kontrollerer også, om bufferen defineret af programmet er adresserbar eller ej.
- Memcheck holder styr på bunkeblokke for at genkende den ufrie blok, når programmet er afsluttet.
Klik på her for at navigere til det officielle Memcheck-websted.
# 4) Glødekode
- GlowCode er en dedikeret kommerciel realtids ydeevne- og hukommelsesanalysator til Windows og .NET Framework.
- GlowCode identificerer hukommelseslækage i de kørende applikationer, der er skrevet på C ++, C # eller NET-kompatibelt sprog.
- Den kontrollerer også performance flow, kodedækning og overdreven forbrug af hukommelse.
- Understøtter Windows 10 og Windows Server 2016 og giver tidlig påvisning af ydeevne og hukommelsesproblemer i det kørende system.
- Understøtter native, administreret og blandet kode.
Klik på her for at navigere til det officielle GlowCode-websted.
# 5) AQTime af Smartbear
- AQTime er det proprietære værktøj fra Smartbear, der understøtter Delphi, C #, C ++, .NET, Java osv.
- Registrerer hukommelseslækage, ydeevne flaskehals og kodedækningshuller i applikationssystemet.
- Analyserer effektivt oplysninger om kompleks hukommelse og ydeevne for at identificere fejlen med grundårsagen.
- Den hurtigste tilgang til at opdage hukommelseslækager, kodedækningshuller og ydeevneflaskehals.
- Top-til-bund Delphi-analyse af applikationen for at identificere hukommelse og ressourcelækage.
Klik på her for at navigere til det officielle AQTime-websted.
# 6) WinDbg
- Windbg til Windows bruges til at identificere kernehukommelsesdumps og undersøge CPU-registret.
- Det kommer i en anden version til Windows-enheder, web- og desktop-applikationer.
- Funktionen ved at identificere crash-dumps i brugertilstand er kendt som 'Post-Mortem Debugging'.
- Du kan implementere DLL-udvidelser for at debugge Command Language Runtime (CLR).
- Windbg leveres med forudindlæst Ext.dll, der bruges som standard Windows Debugger-udvidelse.
Klik på her for at navigere til det officielle Windbg-websted.
# 7) BoundsChecker
- Dette er det proprietære værktøj til hukommelse og API-valideringsværktøj til C ++ software.
- Der er to ActiveCheck og FinalCheck, ActiveCheck udføres mod applikationen og FinalCheck bruges til at kontrollere systemets instrumentform.
- ActiveCheck kan registrere hukommelseslækage ved at overvåge API- og COM-opkald.
- FinalCheck leveres med funktioner i ActiveCheck sammen med muligheden for at detektere bufferoverløb og udefineret hukommelse.
- Hukommelsesoverskridelsesregistrering er den bedste funktion, som BoundsChecker er kendt for.
Klik på her for at navigere til det officielle BoundsChecker-websted.
# 8) Deleaker
- Deleaker er et enkeltstående proprietært hukommelseslækagedetekteringsværktøj og bruges også som Visual C ++ - udvidelse.
- Registrerer også hukommelseslækager i bunke og virtuel hukommelse og integreres let med enhver IDE.
- Den uafhængige version fejler applikationen for at vise den aktuelle allokering af objekter.
- Understøtter alle 32 - bit såvel som 64 - bit system og fuldt integreret med Visual Studio.
- Genererer rige rapporter og eksporterer det endelige resultat til XML.
Klik på her for at navigere til det officielle Deleaker-websted.
# 9) Dr. Memory
- Dr. Memory er et gratis hukommelsesovervågningsværktøj til Windows, Linux og Mac.
- Dette værktøj er i stand til at identificere uinitialiseret og ikke-adresserbar hukommelse og frigivet hukommelse.
- Dr. Memory definerer 3 typer fejl:
-
-
- Stadig tilgængelig placering: hukommelse, der kan nås af applikationen.
- Lække: hukommelse, som applikationen ikke kan nå.
- Mulig lækage: Hukommelse, der kan nås via markører.
-
-
- Yderligere definerer den to typer lækager såsom en direkte og Indirekte lække.
Klik på her for at navigere til det officielle Deleaker-websted.
# 10) Intel Inspector XE
- Dette proprietære værktøj hjælper til tidlig påvisning af hukommelseslækage og hjælper med at reducere udgifterne til løsning af hukommelseslækage.
- Kendt som fejlfinding til C-, C ++ -applikationer, der kører på Windows og Linux uden brug af nogen speciel compiler.
- Den er også tilgængelig som en del af Intel Parallel Studio XE og Intel System Studio.
- Intel Inspector XE udfører statisk og dynamisk analyse for at identificere årsagen til hukommelseslækage.
- Dynamisk analyse registrerer komplekse grundårsager til hukommelseslækage, som ikke registreres ved statisk analyse.
- Det registrerer beskadiget hukommelse, ulovlig adgang til hukommelse, ikke-initialiseret hukommelse og inkonsekvent hukommelse osv.
Klik på her for at navigere til Intel Inspector XE Official site.
# 11) Forsikre ++
- Parasoft Insure ++ er den proprietære kommercielle hukommelsesdebugger til C / C ++.
- Registrerer automatisk unøjagtige, array-bundne overtrædelser, ikke-allokeret hukommelse.
- I stand til at udføre staktsporing, når en faktisk lækage opstod.
- For sættet med testet kode producerer Insure ++ Linear Code Sequence og Jump Code Sequence.
Klik på her for at navigere til det officielle websted Insure ++.
# 12) Visuel lækagedetektor til Visual C ++ 2008-2015
- Visual Leak Detector er et gratis, open source-hukommelses lækage detekteringsværktøj til C / C ++.
- Diagnostiserer hurtigt hukommelseslækage i C ++ applikationen og vælger det modul, der skal udelukkes fra hukommelseslækagen.
- Visual C ++ leverer indbygget hukommelseslækagedetektion, der benytter et komplet sæt lækkede blokke.
- Tilpasningsdygtige og detaljerede rapporter om hukommelseslækage er den bedste funktion i dette værktøj.
- Aktiverer den fulde dokumenterede kildekode til biblioteket.
Klik på her at navigere til the Officiel webside for visuel lækagedetektor.
# 13) Visual Studio Profiler
- Visual Studio leveres med Memory Usage Tool, som hjælper med at opdage hukommelseslækager og ineffektiv hukommelse.
- Dette værktøj bruges til desktop-apps, ASP.NET-apps og Windows-apps.
- Du kan tage snapshots af administreret og indbygget hukommelse og kan analysere enkelt snapshots for at forstå indflydelsen af et objekt på hukommelsen.
- Du kan bruge mere end et øjebliksbillede til at finde årsagen til overdreven brug af hukommelse.
- Aktiverer den fulde dokumenterede kildekode til biblioteket.
Klik på her at navigere til the Officielt websted for Visual Studio Profiler.
# 14) Mtuner
- Mtuner er en hukommelseslækningsfinder, der bruges til Windows-applikationer og PlayStation.
- Tilbyder yderligere funktioner til hukommelsesprofilering.
- Mtuner kan håndtere et antal allokeringer pr. Sekund med lineær præstationsskalering.
- Mtuner leveres med kommandolinjebaseret profilering, der er nyttig til at spore daglige ændringer i hukommelsesforbrug.
Klik på her at navigere til the Mtuner Officiel side.
# 15) Windows lækagedetektor
- Windows Lækagedetektor er et værktøj til detektering af hukommelseslækage til Windows-applikationer.
- Nogle vigtige Windows Lækagedetektor er:
-
-
- Ingen kildekode er påkrævet, og hvis den er der, kræver færre ændringer.
- Kan analysere ethvert Windows-program skrevet på ethvert sprog.
- Effektiv og bedst egnet til applikationer udviklet i et cyklisk mønster.
-
-
- Dette værktøj er konstant under udvikling og har stadig nogle begrænsninger:
-
-
- Du kan kun styre en enkelt proces ad gangen. Inter-proces kommunikationsfunktion tilføjes i fremtiden.
- Den analyserer kun funktionerne HeapAlloc, HeapRealloc og HealFree.
-
-
Systemudviklere af systemet arbejder på at tilføje flere hukommelsesfunktioner som HeapCreate.
Klik på her at navigere til the Officielt websted for Windows Lækagedetektor.
# 16) AddressSanitizer (A San)
- Dette open source-værktøj er designet til at opdage hukommelseslækager i C / C ++ - programmet.
- Det hurtigste værktøj består af Compiler Instrumentation Module og Run-time-bibliotek.
- Dette værktøj finder Heap and Stack bufferoverløb og hukommelseslækage.
- LeakSanitizer er integreret med AddressSanitizer, der gør jobbet med detektering af hukommelseslækage.
- Med LeakSanitizer kan vi specificere instruktionen om at ignorere nogle hukommelseslækage ved at sende den i en separat undertrykkelsesfil.
- Dette værktøj understøttes på Linux, Mac, OS X, Android og iOS Simulator.
Klik på her at navigere til the AddressSanitizer Officiel side.
# 17) GCViewer
- GCViewer er et gratis værktøj genereret af IBM, HP, Sun Oracle og BEA JVM'er.
- Dette værktøj bruges til parsing og analyse af GC-logfiler.
- Du kan generere dataene i CSV-format som regnearksapplikationen.
- Det fungerer på Verbose Garbage Collection. Kortfattet indsamling af detaljerede affald er:
-
- En begivenhedsbaseret generering af affaldsindsamling til hver operation.
- Outputtet Verbose Garbage Collection indeholder trin-ID og lokal tidsstempel.
-
Klik på her at navigere til the GCViewer Officiel side.
# 18) Plumbr
test case format i softwaretest
- Det er et proprietært kommercielt værktøj, der bruges til at kontrollere hukommelseslækage og affaldsindsamling i JVM-applikationen.
- Plumbr er baseret på to vigtige moduler såsom en agent og en portal.
- Agenten understøtter JVM og sender information om affaldsindsamling og hukommelseslækage til portalen.
- Du kan se oplysningerne om hukommelsesforbrug og bunke på portalen.
- Værktøjet bruger en detektionsalgoritme, der er baseret på analyse af ydeevnedata.
Klik på her at navigere til the Plumbr Officielle side.
# 19) .NET Memory Validator
- .NET Memory Validator er en kommerciel hukommelses lækageanalysator, en hukommelsesprofil, der bruges til softwareudvikling og kvalitetssikring.
- Kendt som den hurtigste måde at overvåge flere hukommelsestildelinger med flere indsigter såsom:
-
- Tildelinger: Viser farvekodede tildelingsstatistikker baseret på klasse og
metoden defineret til tildeling af funktion. - Objekter: Objektvisning viser farvekodet objekt og allokering af hukommelse
statistik for de kørende applikationer. - Generationer: Viser antallet af objekter pr. Objekttype for hvert objekt
generation tildelt af applikationen. - Hukommelse: Hukommelsesvisning viser det aktuelle objekt med information om
objekttype, tildelingsstørrelse og opkaldstak, tidsstempel. - Analyse: Denne visning viser hukommelsesforbruget.
- Tildelinger: Viser farvekodede tildelingsstatistikker baseret på klasse og
-
- De vigtigste funktioner i dette værktøj inkluderer registrering af hukommelseslækage, håndtering af hukommelseslækage, Kørsel af regressionstest for at identificere hukommelseslækager.
- .NET Memory validator er kompatibel med enhver version af .NET framework og CLR.
- Let at bruge, et konfigurerbart, kraftfuldt og multifunktionelt værktøj til identifikation af hukommelseslækage.
Klik på her at navigere til the. NET-hukommelsesvalidator Officielt websted.
# 20) C ++ Memory Validator
- Ligesom .NET Memory Validator er dette værktøj også en kommerciel hukommelses lækagedetektor og analysator.
- C ++ Memory Validator giver flere indsigter såsom:
-
- Hukommelse: Viser oplysningerne om den tildelte og lækkede hukommelse og sporer fejlmeddelelser. Dataene vises i en træstruktur, der kan vælges og filtreres.
- Objekter: Viser objektstatistikker med objekttype og tildelte, deallokerede & genallokerede objekter.
- Dækning: Denne visning giver oplysninger om hukommelsesforbrug. Værktøjet leveres med filtre, der fjerner tredjepartsfilerne.
-
- Auto-Merge Facility hjælper med at flette flere statistikker fra flere indsigter for at danne en sammensat dækning for regressionstestpakken.
- Bortset fra disse indsigter giver værktøjet visning af tidslinje, hotspot, størrelser og analyse af applikationen.
- Kraftfuldt og konfigurerbart værktøj kompatibelt med Microsoft C og C ++, Intel C ++ osv.
Klik på her at navigere til the C ++ Memory Validator Officiel side.
# 21) Dynatrace
- Dynatrace er et kommercielt værktøj, der understøtter All-in-One Performance Management og omfatter fuld stack-overvågning, enkelt transaktionsanalyse.
- Det indeholder værktøjer til registrering af hukommelseslækage til bestemmelse af hukommelsesforbrug.
- Dynatrace Java-hukommelsesdetekteringsværktøjer er tilgængelige til applikationer skrevet i Java, og .NET Profiler Tools bruges til applikationer, der kører i Java.
- Med sin unikke hotspot-visning kan du finde et objekt, der ikke bruger hukommelsen effektivt.
- Du kan udføre hukommelsestendingsdumps af hukommelsesforbrug. Dette værktøj hjælper med at identificere de objekter, der konstant øger hukommelsesforbruget og ikke placeres korrekt fra hukommelsen.
Klik på her at navigere til the Dynatrace officielle side.
Yderligere værktøjer til hukommelseslækage
Dette er nogle meget anvendte værktøjer til at opdage hukommelseslækager. Igen er listen endnu ikke færdig her, der er også nogle andre værktøjer, der bruges til at opnå det samme formål.
Vi gennemgår dem kort:
#22) NetBeans Profiler :
NetBeans Profiler er et proprietært Java-profileringsværktøj, der er udviklet med funktioner som hukommelse, tråde, SQL-forespørgsler osv. I dag leveres dette værktøj med nogle nye og avancerede funktioner til håndtering af tråddumps.
URL: NetBeans Profiler
# 23) Mtrace :
Mtrace er indbygget med glibc (GNUC er et biblioteksprojekt til vellykket implementering af C-standardbibliotek), der bruges til at opdage hukommelseslækager forårsaget af usædvanlige malloc / gratis opkald.
Når det er kaldt, stopper det allokering af hukommelse til objekterne. Mtrace Perl-script bruges til at scanne den logfil, der er oprettet for hukommelseslækage. Hvis du angiver kildekoden til den, kan du også forstå den nøjagtige placering, hvor problemet opstod.
URL: Mtrace
# 24) Java Visual VM :
Visual VM er et meget nyttigt værktøj for udviklere til at spore og spore hukommelseslækager. Den analyserer dyngedata og affaldssamler. Det sikrer optimeret brug af hukommelse og hjælper med at forbedre applikationens ydeevne.
Tilbyder funktioner som trådanalyse og heapdumpanalyse til løsning af kørselstidsproblemer.
Her er vi færdige med mest populære Memory Leak Management Tools. Vi kan vælge et eller flere pr. Kritiske hukommelsesområder i vores system.
Med brugen af denne software kan vi ikke kun gøre opgaven lettere, men også reducere det nødvendige tidsforbrug til detektering af hukommelseslækage, hvilket er forholdsvis en kedelig opgave.
URL: Java Visual VM
Konklusion
Værktøj til styring af hukommelseslækage reducerer andelen af indsats og tid brugt på at styre hukommelse. Administration af hukommelsesadgang og tildeling og sporing af lækager er en så vigtig opgave, da hukommelse er rygraden i enhver software til at gemme og administrere dine data effektivt.
Igen, uden korrekt hukommelsestildeling kan man ikke engang køre applikationssystemet. For at undgå systemfejl og forbedre dets ydeevne er vi nødt til at udføre hukommelseslækagestyring.
Når man holder dette behov i tankerne, bruger mange organisationer de tilgængelige værktøjer til dette, mens det i sidste ende vil gøre tingene lettere for dem og slutbrugeren.
******************
= >> Kontakt os at foreslå en liste her.
******************
Anbefalet læsning
- Sådan repareres hukommelseslækage i Android-apps ved hjælp af DDMS-værktøj
- Bedste softwaretestværktøjer 2021 (QA Test Automation Tools)
- Java-implementering: Oprettelse og udførelse af Java JAR-fil
- Java Virtual Machine: Hvordan JVM hjælper med at køre Java-applikationer
- Adgang modifikatorer i Java - vejledning med eksempler
- Java Reflection Tutorial med eksempler
- Introduktion til Java-programmeringssprog - Videovejledning
- 25 bedste Java-testrammer og værktøjer til automatiseringstest (del 3)