HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Mennyi memóriát foglal le az alkalmazásunk?


Példaprogram letöltése

4401 bájt

Készítsünk most egy olyan komponenst, mely képes arra, hogy meghatározza azt a számot, melyből megtudható az alkalmazásunk által lefoglalt memória terület. Így programunk futása során egyszerűen választ kaphatunk e kérdésre.

A mellékelt példaprogram megnyitása előtt a ProcessMemory.pas-ban lévő komponenst telepítenie kell a Delphi alá. Ehhez válassza a Component - Install Component menüpontot.
A komponenshez két property-t készítünk: a Value property-ből tudhatjuk meg a lefoglalt memória terület nagyságát bájtban, míg ugyanezt az értéket a ValueInMB property-ből MB-ban olvashatjuk ki.
A Value property értékét a GetValue függvény szolgáltatja. A lefoglalt memória méretét a GetProcessMemoryInfo függvény adja meg. Itt első paraméterként annak a folyamatnak az azonosítóját kell megadnunk, melynél szeretnénk meghatározni a felhasznált memória terület méretét. Mivel jelen feladatunknál mindig a saját alkalmazásunk ezen adatára vagyunk kíváncsiak, így itt a GetCurrentProcess függvényt használjuk, mely alkalmazásunk folyamatának azonosítóját adja vissza.
Az eredményt a GetProcessMemoryInfo függvény második paraméterében megadott PPROCESS_MEMORY_COUNTERS struktúrában kapjuk. Ezen belül is a WorkingSetSize mező lesz az, mely a kérdéses számot tartalmazza.
function TProcessMemory.GetValue: integer;
var
  pmc: PPROCESS_MEMORY_COUNTERS;
  i: integer;
begin
  result:=0;
  i:=SizeOf(_PROCESS_MEMORY_COUNTERS);
  GetMem(pmc, i);
  pmc^.cb:=i;
  if GetProcessMemoryInfo(GetCurrentProcess(), pmc, i) then begin
    result:=pmc^.WorkingSetSize;
  end;
  FreeMem(pmc);
end;
Fontos tudni, hogy a Delphi-ben szerkesztési időben az aktuális folyamat az maga a Delphi. Így a komponensünk szerkesztési időben a Delphi által lefoglalt memóriának méretét adja vissza és csak akkor, amikor futtatjuk a programunkat, akkor kapjuk meg az általa lefoglalt memóriát.

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 378. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |