AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetHeapStatus ?!?

Ein Thema von Leominora · begonnen am 24. Apr 2006 · letzter Beitrag vom 24. Apr 2006
Antwort Antwort
Leominora

Registriert seit: 25. Nov 2004
26 Beiträge
 
Delphi 7 Enterprise
 
#1

GetHeapStatus ?!?

  Alt 24. Apr 2006, 10:50
Hallo alle miteinander!

Meine Hardware-Kenntnisse sind schlecht (gebe ich zu)!

Was sagt mir das jetzt?

GetHeapStatus:

TotalAddrSpace: 3145728,
TotalUncommitted: 1097728,
TotalCommitted: 2048000,
TotalAllocated: 1109584,
TotalFree: 878456,
FreeSmall: 627280,
FreeBig: 251176, (erst: FreeBig: 336940 und was bedeutet das, wenn das soweit absinkt?)
Unused: 0,
Overhead: 59960,
HeapErrorCode: 0


Danke schon mal für eine Antwort!

Leo
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: GetHeapStatus ?!?

  Alt 24. Apr 2006, 10:55
geh mal mit dem Cursor auf GetHeapStatus und drück dann F1, ich glaub das kamm man kaum besser/leichter erklären
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Leominora

Registriert seit: 25. Nov 2004
26 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: GetHeapStatus ?!?

  Alt 24. Apr 2006, 11:23
Zitat:
Beschreibung
GetHeapStatus gibt den aktuelle Status des Speichermanagers als THeapStatus-Typ zurück. Wenn die Unit ShareMem nicht in das aktuelle Projekt einbezogen wurde, gibt GetHeapStatus Informationen über den globalen Heap zurück. Wenn die Unit ShareMem einbezogen ist, liefert GetHeapStatus Information über den Speicher, der von dem aktuellen Projekt und anderen binären Modulen (wie z.B. DLLs), die auch die Unit ShareMem verwenden, gemeinsam genutzt werden kann. Nur wenn der integrierte Speichermanager verwendet wird, kann GetHeapStatus sinnvolle Informationen liefern. Wenn beispielsweise CodeGuard verwendet wird, wird der Speichermanager ersetzt und GetHeapStatus gibt immer nil (Delphi) bzw. NULL (C++) zurück.

Um Informationen über den Speichermanager abzurufen, der von Modulen gemeinsam genutzt wird, müssen Sie die Funktion GetHeapStatus aus der Unit ShareMem aufrufen. Die Funktion GetHeapStatus aus der Unit System gibt keine Werte für ein Projekt zurück, das gemeinsam genutzten Speicher verwendet.
Das hilft mir leider nicht weiter...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: GetHeapStatus ?!?

  Alt 24. Apr 2006, 11: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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Leominora

Registriert seit: 25. Nov 2004
26 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: GetHeapStatus ?!?

  Alt 24. Apr 2006, 11:58
Delphi2005... da wurde nicht nur bei der Hilfe eingespart!

Danke!!!

Leo
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz