- Delphiartiklar, tips, forum, länksamling - 

      

START | DELPHI | LÄNKARGÄSTBOK 




 Forum

Grundkurs
  »Introduktion
  »Snabbguide
  »Komponenter
  »Händelser
  »Strängar
  »Räkna med Delphi   »Egna typer
  »Selektion
  »Iteration
  »Menyer
  »Funktioner
  »Arraystrukturer

Tips & Tricks
  »Nya tips
  »Blandat
  »Databaser
  »Filer
  »Forms
  »Grafik
  »Internet
  »Komponenter
  »Matematik
  »Multimedia
  »Objekt/ActiveX
  »Skrivare
  »Strängar
  »System
  »Mest lästa tips

Artiklar
  »Delphi och ADO
  »Bygga en DLL
  »Skapa en enkel rapport
  »Hantera registret
  »Enheter, units
  »Klassen TCanvas
  »Använd LookUp Controls

 Nya tips
 Lägg till tips
 Delphilänkar
 Gästbok

 

Upptäck minnesläckor Kategori: System
Inlagt: 2005-12-22
Läst: 1774
Inlagt av: Staffan Berg
Beskrivning
Avancerat kodexempel som tar reda på om ditt minne läcker.
Kod
procedure TForm.DebugProcessStatus(s: string ); 
var  
 pmc: PPROCESS_MEMORY_COUNTERS; 
 cb: Integer; 
 MemStat: tMemoryStatus; 
begin 
 MemStat.dwLength := SizeOf(MemStat); 
 GlobalMemoryStatus(MemStat); 
 
 // Get the total and available system memory 
 TotalMemoryLabel.Caption := 'Total system memory: ' + 
  FormatFloat('###,###', MemStat.dwTotalPhys / 1024) + ' KByte'; 
 FreeMemoryLabel.Caption := 'Free physical memory: ' + 
  FormatFloat('###,###', MemStat.dwAvailPhys / 1024) + ' KByte'; 
 
 // Get the used memory for the current process 
 cb := SizeOf(TProcessMemoryCounters); 
 GetMem(pmc, cb); 
 pmc^.cb := cb; 
 if GetProcessMemoryInfo(GetCurrentProcess(), pmc, cb) then 
 begin 
  NewWorkingMemory      := Longint(pmc^.WorkingSetSize); 
  ProcessMemoryLabel.Caption := 'Process-Memory: ' + 
   FormatFloat('###,###', NewWorkingMemory / 1024) + ' KByte'; 
  MemoryLeakLabel.Caption  := 'Memory Loss: ' + 
   FormatFloat('###,###', (NewWorkingMemory - OldWorkingMemory) / 1024) + ' KByte'; 
  OldWorkingMemory      := NewWorkingMemory; 
 end; 
 FreeMem(pmc); 
 
 DebugStatusLabel.Caption := 'Status: ' + s; 
end; 

 
 
© Copyright 2005 - Staffan Berg
- Alla rättigheter förbehålles -