Rekommenderas
Du kan få ett enstaka fel som säger att win32 stöder läckagedetektering. Som programmet visar sig finns det flera steg du säkert kan vidta för att åtgärda det här problemet, och vi återkommer till det inom kort.
Påverkas av dessa plattformar
Beskrivning
Hur upptäcker man minnesläckor från Windows-program?
Vad gör nativeleakdetector mot minnesläckor?
Minnesläckor är en klass kopplad till irriterande buggar där ett program inte släpper minnet när det inte längre behövs. Med tiden förlorar minnet inflytandet från appen och operativsystemet. En stor läcka kan också orsaka oacceptabla svarstider på grund av tjock personsökning. Vid något tillfälle kommer applikationen att krascha upp och ner med andra delar av operativsystemet.
Windows kommer att göra varje ledigt minne som tilldelats av applikationen tillgängligt i slutet av processen så att majoriteten av kortsiktiga applikationer inte har en betydande inverkan helt på det övergripande System prestanda. Däremot kan läckor som utlöses i processer som tjänster eller till och med i långvariga Explorer-plugin-program i många fall allvarligt påverka systemets tillförlitlighet och kommer därför troligen att tvinga användaren att uppdatera Windows så att enheten kan användas tillbaks igen.
Det finns flera sätt som program allokerar minne åt deras räkning. Alla typer från sortering kan läcka om de inte används omedelbart. Här är några exempel på vanliga kartografiska modeller:
- Skapa en hög med minne med hjälp av den speciella funktionen heapalloc eller dess pedagogiska C / C ++-motsvarigheter malloc eller ny.
- Jag skulle säga direkta tilldelningar från underhållssystemet via funktionen VirtualAlloc .
- Kärndeskriptorer skapade med Kernel32 API:er som till och med CreateFile , CreateEvent , CreateThread håller kärnminnet som “klara ändamål”
- GDI USER och handtag som hanteras via mina User32 och Gdi32 API:er (10 000 handtag tilldelas varje process som standard)
Bästa metoder
Fungerar GDI-läckagedetektorer på nyare versioner av Windows?
Eftersom vissa nya versioner av Windows kräver ett något annat program än att hantera GDI-läckor, använder författaren uppdaterade metoder för dessa affärssystem. Han utvecklar förklarar också andra verktyg för att upptäcka och stoppa GDI-läckor i applikationer som körs på Windows XP, Windows 2000, det vill säga Windows NT.
Att spåra denna speciella biokonsumtion av din app i kreativitet under ett år är det första steget i diagnostikNostik och diagnostik av minnesläckor. Använd Windows Task Manager och lägg till tips: följ commit-storlek, tar hand om, anpassade och GDI-objekt. Detta är ett kvalitetssätt att jämföra din applikation och spåra referens eller resursförbrukning över tid.
Hur användes cwindowdc egentligen för att upptäcka resursläckor?
Publiken Microsofts verktyg ger mer detaljerad information och bör kunna hjälpa till att identifiera och definitivt diagnostisera läckor för alla våra olika kartläggningstyper i din slutanvändarapplikation:
- Performance Monitor och Resource Monitor är platser i bara Windows 7 som kan spåra grafik och användbar användning över tid.
- De flesta versioner av Application Verifier kan alltid söka efter heap-läckor på Windows 7.
- UMDH, som var en del kopplat till Windows Debugging Tools, analyserar mängden tillsammans med högminne för en given process och kommer säkerligen att hjälpa till att hitta läckor och andra konstiga användningsåtgärder.
- Xperf är ett sofistikerat och lättanvänt nedbrytningsverktyg som stöder spårning av paketdistribution.
- CRT Debug Heap håller reda på globala tilldelningar kan också hjälpa dig att en gång arbeta med dina egna värdefulla klumpfelsökningsfunktioner.
>
Vissa kodnings- och designtekniker kan begränsa många droppar i din kod. Smart
- Använd klausuler över hela C++-koden för att tilldela heap- och Win32-resurser som t.ex. kernel HANDLES. C ++ Standard Library tillhandahåller din auto_ptr-klass för nummertilldelning. För andra bastyper kommer du att kräva att du skriver dina egna klasser. ATL-katalogen erbjuder en rik uppsättning automatiska resursövervakningsklasser som är tillgängliga för både fysiska heap- och kärndeskriptorer.
- Använd inbyggda kompilatorerbjudanden som _com_ptr_t för att kapsla in dina COM-dockningspekare direkt i smarta pekare och till nummerstudier. Det finns liknande klasser på grund av separata COM-datatyper: _bstr_t still _variant_t
- Se upp för ovanlig användning av din .NET-kupong på lagringsenheter. Hanterad kod är inte osårbar för minnesläckor. Se “Spåra hanterade minnesläckor” för att hitta sophämtares läckor.
- Var uppmärksam på mallfrågorna i webbkoden på klientsidan. Cirkulära referenser mellan COM-objekt och skriptmotorer som JScript kommer förmodligen att leda till betydande läckor i webbapplikationer. “Felsökning av Internet Explorer-läckor och mallar” kommer med mer information om dessa typer av relaterade läckor. Du kan använda JavaScript-minnesläckageindikatorn för att felsöka oavsiktliga minnesläckor i din kodning. Medan Windows Internet Explorer 8 medföljer som har Windows 7 fixar de flesta av dessa problem, är äldre användare fortfarande direkt benägna att få dessa fel.
- Undvik att använda flera slutledningsmetoder för ett verk. Tilldelningar som objekt i funktionsdestinationen har tilldelats bör egentligen frigöras med hänsyn till ett specifikt block, kanske i slutet om funktionen
- Se till att du inte drar fördel av undantag i din kod om det inte bara är effektivt att frigöra alla lokala variabler. Om hela din familj använder inbyggda gratiskort är alla deras läxor i ett __slutligen block. När du använder C++-undantag måste alla heap- och deskriptorgivar vara omgivna av intellektuella pekare.
- Ta inte bort eller dumpa inte det absoluta PROPVARIANT objektet utan att anropa funktionen PropVariantClear
Resurslänkar
- Högallokeringsfunktion
- Minnestilldelning visar resultat
- Ny operator (C ++)
- Virtuell mappningsfunktion
- Kärnobjekt
- GDI-målbeskrivningar
- Hanter till användargränssnittsverktyg
- Kontroll av kandidater
- Felsökningsverktyg för Windows
- dump i besöksläge
- Verktyg för att spela in, bearbeta och analysera spår
- CRT Debug Heap
- auto_ptr-modul
- ATL-lagringsklasser (Active Template Library)
- _com_ptr_t leksak
- _bstr_t klass
- _variant_yt flair
- “Managed Memory Hold Leak Detection”
- “Förstå och felsöka läckmönster i Internet Explorer”
- JavaScript-minnesläckagedetektor
- Minska cykliska återkallningsläckor (i webbläsare):
- Uttalande om att slutföra försök
- PROPVARIANTE-struktur
- Funktionen PropVariantClear
- Artikel
- 1 minut att läsa.
Win32 Handle Leak Detection
Win32 핸들 누수 감지
Win32 Gerer La Detection Des Fuites
Win32 Gestisce Il Rilevamento Delle Perdite
Win32 Maneja La Deteccion De Fugas
Win32 Uchwyt Wykrywania Nieszczelnosci
Deteccao De Vazamento De Alca Win32
Win32 Behandelt Die Lecksuche
Win32 Obrabatyvaet Obnaruzhenie Utechek
Win32 Handvat Lekdetectie