Sdílet prostřednictvím


Struktura CMemoryState

Poskytuje pohodlný způsob, jak zjistit nevrácení paměti v programu.

struct CMemoryState

Členy

0wzsd007.collapse_all(cs-cz,VS.110).gifVeřejné konstruktory

Název

Description

CMemoryState::CMemoryState

Struktura konstrukce typu třída, která řídí kontrolní body paměti.

0wzsd007.collapse_all(cs-cz,VS.110).gifVeřejné metody

Název

Description

CMemoryState::Checkpoint

Získá snímek aktuálního stavu paměti (kontrolní bod).

CMemoryState::Difference

Vypočítá rozdíl mezi dvěma objekty typu CMemoryState .

CMemoryState::DumpAllObjectsSince

Vypíše shrnutí všech aktuálně přidělená objektů od předchozí kontroly.

CMemoryState::DumpStatistics

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

Viz také

Referenční dokumentace

Diagram hierarchie