Wednesday, March 14, 2007

Kolik paměti využívá daný proces

Tento tip si sice můžete vyzkoušet pouze pod systémy NT/2000/XP (tedy vyzkoušet ho můžete pochopitelně i pod systémy 9x, ale fungovat to nebude), přesto se může hodit. Jak tedy zjistit, kolik paměti si pro svou činnost (nebo nečinnost) bere vaše aplikace? Použijeme k tomu opět funkce API a konkrétně knihovny psAPI. Samotný kód vypadá takto:
uses psAPI;

.
.
.

procedure TForm1.Button1Click(Sender: TObject);
var
pmc: PPROCESS_MEMORY_COUNTERS;
cb: Integer;
begin
cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
GetMem(pmc, cb);
pmc^.cb := cb;
if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then
ShowMessage(IntToStr(pmc^.WorkingSetSize) + ' Bytes')
else
ShowMessage('Nelze zjistit údaj o využití paměti');
FreeMem(pmc);
end;