|
| Forbrug af RAM Fra : Torben Brandt |
Dato : 24-05-03 23:27 |
|
Jeg forsøger at finde ud af, hvor stor en del af min RAM, der er brugt.
Jeg bruger:
var
memory: TMemoryStatus;
begin
memory.dwLength := SizeOf(memory);
GlobalMemoryStatus(memory);
Så ville jeg tro at
memory.dwMemoryLoad
og
(memory.dwTotalPhys - memory.dwAvailPhys) / memory.dwTotalPhys) * 100
var det samme, men der kan være op til 30 i forskel.
Hvad er det, de hver især viser? Og hvilken skal jeg bruge?
mvh Torben
| |
David Konrad (17-06-2003)
| Kommentar Fra : David Konrad |
Dato : 17-06-03 13:21 |
|
"Torben Brandt" <name@domain.invalid> skrev i en meddelelse
news:3ECFF19C.1040906@domain.invalid...
Jeg forsøger at finde ud af, hvor stor en del af min RAM, der er brugt.
Jeg bruger:
var
memory: TMemoryStatus;
begin
memory.dwLength := SizeOf(memory);
GlobalMemoryStatus(memory);
Så ville jeg tro at
memory.dwMemoryLoad
og
(memory.dwTotalPhys - memory.dwAvailPhys) / memory.dwTotalPhys) * 100
var det samme, men der kan være op til 30 i forskel.
Hvad er det, de hver især viser? Og hvilken skal jeg bruge?
--
Det er dwMemoryLoad der er en smule sjov, eftersom den viser det aktuelle
forbrug af al RAM relativt i forhold til den samlede mængde. Hvad de enkelte
felter i recorden udtrykker mener jeg er selvbeskrivende.
Men, for et Delphi-program synes jeg dog snarere det er mængden af
tilgængelige ressourcer der er interessant, eftersom det 999 ud af 1000
gange er det loft man støder på - brug funktionen
_MyGetFreeSystemResources32 der ligger i rsrc32.dll, f.eks
function FreeResources(mode: Integer): integer;
var _MyGetFreeSystemResources32: function(mode: Integer): integer stdcall;
DLLHandle: THandle;
begin
DLLHandle := LoadLibrary('RSRC32.DLL');
if (DLLHandle <> 0) then
begin
@_MyGetFreeSystemResources32 := GetProcAddress(DLLHandle,
'_MyGetFreeSystemResources32@4');
Result := _MyGetFreeSystemResources32(mode);
FreeLibrary(DLLHandle);
end;
end;
De forskellige modes er 0,1,2 = % fri i systemet, % GDI fri og % bruger
fri...
....Slå den op på internet.
| |
|
|