AGB  ·  Datenschutz  ·  Impressum  







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

Heap

Ein Thema von Pseudemys Nelsoni · begonnen am 13. Feb 2004 · letzter Beitrag vom 14. Okt 2004
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Heap

  Alt 13. Feb 2004, 04:55
Es gibt zwei große Speicherbereiche, den Heap und den Stack. Auf dem Stack werden Rücksprungadressen, Parameter und lokale Variablen abgelegt. Auf dem Heap die globalen, Arrays, Objekte (bei Konstanten bin ich mir nicht sicher) etc.

Der Stack arbeitet nach dem FiLo Prinzip: First in, last out. Also wie ein Stapel. Bekanntestes Beispiel ist wohl ein Tellerstapel, den Teller den ich als erstes hinstelle, kann ich nur als letztes wegnehmen, wenn ich alle anderen erst wieder runtergenommen habe. Das Betriebssystem reserviert pro Thread, wenn nicht anders angegeben 1 MB (oder waren es zwei?).

Auf den Heap kann ich "wahlfrei" über die Adresse zu greifen. Wie groß der nun ist, kann ich allerdings nicht sagen. Er wird wahrscheinlich dynamisch angepasst werden, je nach dem wie viel Speicher deine Anwendung braucht, kann also wachsen. Sprich, dine anwendung vordert ihn von windows an und windows gibt dir einen gültigen Adressbereich zurück. Im Gegensatz zum Stack, kann der Heap auch fragemntiert sein, was sich aus dem Prinzip ergibt, wie er verwaltet wird. Wobei der Heap von dem einem Ende des Adressbereiches wächst und der Stack von dem anderen. Insgesamt steht deiner Anwendung unter 32-Bit Windows ein 4 GB großer Adressraum zur Verfügung. Da man mit 32 Bit $00000000 bis $FFFFFFFF speicheradressen ansprechen kann. Wobei effektiv nutzen kann er da von nur 2 GB, der Rest wird für Systemcode benötigt, der in den Adressraum deiner Anwendung gemappt wird.

So, das ist alles, was ich über den Heap und den Stack weiß. Ich hoffe, ich habe nicht zu viel Mist erzählt. Man möge mich verbessern und ergänzen, falls dem so sein sollte.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
 


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 14:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz