Thema: Delphi GetHeapStatus ?!?

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.214 Beiträge
 
Delphi 12 Athens
 
#4

Re: GetHeapStatus ?!?

  Alt 24. Apr 2006, 12:26
das steht in meiner D4-OH:
Code:
Die Funktion GetHeapStatus liefert den aktuellen Status der Speicherverwaltung zurück.

Unit

System oder ShareMem

Kategorie

Speicherverwaltung

type

  THeapStatus = record
    TotalAddrSpace: Cardinal;s
    TotalUncommitted: Cardinal;
    TotalCommitted: Cardinal;
    TotalAllocated: Cardinal;
    TotalFree: Cardinal;
    FreeSmall: Cardinal;
    FreeBig: Cardinal;
    Unused: Cardinal;
    Overhead: Cardinal;
    HeapErrorCode: Cardinal;

  end;

function GetHeapStatus: THeapStatus;

Beschreibung

GetHeapStatus gibt den aktuellen Status der Speicherverwaltung in einem THeapStatus-Record zurück. Binden Sie die Unit System ein, um Informationen über den globalen Heap zu ermitteln. Binden Sie statt System die Unit ShareMem ein, wenn der Speicher von verschiedenen Prozessen gemeinsam genutzt wird.

Die Werte im THeapStatus-Datensatz bedeuten folgendes:
Feld
Bedeutung

TotalAddrSpace
Der (aktuelle) gesamte Adressierungsbereich in Byte, der für Ihr Pascal-Programm zur Verfügung steht. Dieser Bereich wächst mit dem Anwachsen der dynamischen Speicherung Ihres Programms an.

TotalUncommitted
Die gesamte Byte-Anzahl (von TotalAddrSpace), für die kein Platz in der Swap-Datei zugewiesen wurde.

TotalCommitted
Die gesamte Byte-Anzahl (von TotalAddrSpace), für die Platz in der Swap-Datei zugewiesen wurde. Hinweis: TotalUncommitted + TotalCommitted = TotalAddrSpace

TotalAllocated
Die gesamte Byte-Anzahl, die durch Ihr Programm dynamisch zugewiesen wurde.

TotalFree
Die gesamte Anzahl nicht belegter Byte, die (aktuell) für die Zuweisung durch Ihr Programm zur Verfügung steht. Falls diese Anzahl überschritten wird und ausreichend virtueller Arbeitsspeicher vorhanden ist, wird von Betriebssystem weiterer Adressierraum zugewiesen. TotalAddrSpace wird entsprechend erhöht.

FreeSmall
Gesamtanzahl der Byte von kleinen Speicherblöcken, die aktuell nicht durch Ihr Programm zugewiesen wurden.

FreeBig
Gesamtanzahl der Byte von großen Speicherblöcken, die aktuell nicht durch Ihr Programm zugewiesen wurden. Große freie Blöcke können durch Zusammenführen von kleinen, fortlaufenden freien Blöcken oder durch Freigabe von großen dynamischen Zuweisungen geschaffen werden. (Die genaue Größe von Blöcken ist unwesentlich.)

Unused
Gesamtanzahl der Byte, die nie von Ihrem Programm zugewiesen wurden. Hinweis: Unused + FreeBig + FreeSmall = TotalFree; Hinweis: Dabei handelt es sich um dynamische Zuweisungen durch das Benutzerprogramm.

Overhead
Gesamtanzahl der Byte, die für den Heap-Manager erforderlich sind, um alle von Ihrem Programm zugewiesenen Blöcke dynamisch zu verwalten.

HeapErrorCode
Gibt den aktuelle Status des Heap, wie intern festgelegt, an.


Hinweis
TotalAddrSpace, TotalUncommitted und TotalCommitted beziehen sich auf Betriebssystemspeicher, der vom Programm verwendet wird. TotalAllocated und TotalFree beziehen sich auf Heap-Speicher, der innerhalb des Programms für dynamische Zuweisungen benutzt wird. Verwenden Sie für die Überprüfung des dynamischen Speichers in Ihrem Programm, daher TotalAllocated und TotalFree.Die Funktion GetHeapStatus liefert den aktuellen Status der Speicherverwaltung zurück.
$2B or not $2B
  Mit Zitat antworten Zitat