AGB  ·  Datenschutz  ·  Impressum  







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

Arbeitsspeicher läuft über - wie leeren

Ein Thema von Ykcim · begonnen am 19. Aug 2010 · letzter Beitrag vom 20. Aug 2010
Antwort Antwort
Benutzerbild von himitsu
himitsu

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

AW: Arbeitsspeicher läuft über - wie leeren

  Alt 20. Aug 2010, 00:42
Windows weist dem virtuellen Addressraum des Prozesses reellen Speicher zu, wenn eswas angefordert wird (MSDN-Library durchsuchenVirtualAlloc und Co.)
und beim Beendes des Prozesses werden diese Zuweisungen einfach wieder freigegeben, es sei denn man hat den Speicher ge-shared und andere Prozesse haben auch noch eine Zuweisung ... Windows weiß also was welchem Prozess zugewiesen wurde.

SetLength führt Finalize/FinalizeArray und Initialize/InitializeArray für alle reservierten und freizugebenden Arrayfelder aus.
dynamische Arrays besitzen eine automatischen Speicherverwaltung/Initialisierung (ebenso wie Strings und Interfaces).
Wenn man also bei einem mehrdimensionalen Array das äußere Array freigibt, dann werden über Finalize die untergeordneten Arrays mit freigegeben.


Wärend der Programmlaufzeit muß man sich also "nur" um die nicht automatisch behandelten Speicheranfragen kümmer, wie Pointer und Objekte.

Wird ein Prozess beendet, dann räumt Windows auf ... gerade deswegen wurde ja mit der WinNT-Serie die virtuelle Speicherverwaltung eingeführt.
- Windows weiß wem was gehört und kann damit auch ordentlich aufräumen
- Prozesse haben getrennte Speicherräume und können sich nicht einfach gegenseitig beeinflussen (früher konnte ein BufferOverrun auch schonmal einen fremden Prozess schrotten und nicht nur den Eigenen).
Ein Therapeut entspricht 1024 Gigapeut.
  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 14:06 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