Struktura CMemoryState
Poskytuje pohodlný způsob, jak zjistit nevrácení paměti v programu.
struct CMemoryState
Členy
Veřejné konstruktory
Název |
Description |
---|---|
Struktura konstrukce typu třída, která řídí kontrolní body paměti. |
Veřejné metody
Název |
Description |
---|---|
Získá snímek aktuálního stavu paměti (kontrolní bod). |
|
Vypočítá rozdíl mezi dvěma objekty typu CMemoryState . |
|
Vypíše shrnutí všech aktuálně přidělená objektů od předchozí kontroly. |
|
Tiskne statistiky přidělení paměti CMemoryState objektu. |
Poznámky
CMemoryStateje struktura a nemá základní třída.
"" Nevrací paměť při paměti objektu je přiděleno haldy, ale není platný, pokud již není vyžadováno.Takové nevrácené paměti může nakonec vést k chybám z důvodu nedostatku paměti.Přidělení a navrátit paměti v programu několika způsoby:
Použití malloc /bez řady funkcí z knihovny runtime.
Pomocí funkce správy paměti systému Windows API, LocalAlloc/LocalFree a GlobalAlloc/GlobalFree.
C++ pomocí nové a Odstranit operátory.
CMemoryState Diagnostika pouze zjistit paměti nevracení způsobeno při přidělení paměti, použití nové operátor není platný pomocí Odstranit.Jsou další dvě skupiny funkcí správy paměti pro programy jazyka C++ a míchání je s nové a Odstranit ve stejném programu není doporučeno.Další makra, DEBUG_NEW , nahradit je k dispozici nové operátor potřebujete soubor a číslo řádku sledování přidělení paměti.DEBUG_NEWpoužívá se při každém běžně používáte nové operátor.
Stejně jako ostatní Diagnostika CMemoryState diagnostiky jsou dostupné pouze v ladicí verze programu.Ladicí verze musí být _DEBUG konstanta definovaná.
Pokud se domníváte, že program má nevracení paměti, můžete Checkpoint , rozdíl, a DumpStatistics funkce zjistit rozdíl mezi stavu paměti (objekty přidělené) na dvou různých místech v provádění programu.Tyto informace mohou být užitečné při určování, zda je funkce Vyčištění všech objektů, které přiděluje.
Pokud jednoduše věděla, kde dochází k nerovnováze při přidělování a navracení zpět neposkytuje dostatek informací, můžete DumpAllObjectsSince vypsat všechny objekty, které jsou přidělena od předchozího volání funkce Checkpoint .Tento výpis zobrazuje pořadí přidělování, zdrojový soubor a řádku, kde byla přidělena objektu (Pokud používáte DEBUG_NEW pro přidělení) a odvození objektu, jeho adresu a jeho velikost.DumpAllObjectsSinceKaždý objekt vyžaduje rovněž Dump funkce poskytuje informace o aktuálním stavu.
Další informace o použití CMemoryState a ostatní Diagnostika, viz Ladění aplikací MFC.
[!POZNÁMKA]
Prohlášení objekty typu CMemoryState a volání funkce členů by bracketed podle #if defined(_DEBUG)/#endif směrnic.To způsobí diagnostiku paměti, které mají být zahrnuty pouze do ladění sestavení programu.
Hierarchii dědičnosti
CMemoryState
Požadavky
Záhlaví: afx.h