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.