AGB  ·  Datenschutz  ·  Impressum  







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

Speicher freigeben

Ein Thema von Jessy_ · begonnen am 20. Apr 2004 · letzter Beitrag vom 20. Apr 2004
Antwort Antwort
Jessy_

Registriert seit: 7. Sep 2003
Ort: Ilmenau
17 Beiträge
 
Delphi 7 Enterprise
 
#1

Speicher freigeben

  Alt 20. Apr 2004, 13:12
Wie gesagt versuche ich bei meinem Programm hinterher den Speicher per Befehl wieder freizugeben.
Die Speicher der Zeiger kann man ja mit dispose(zeiger) wieder freigeben. Aber wie geb ich den gesamten Speicher frei?

Mit MemAvail läst sich ja die Größe des genutzten Speichers ermitteln...wie kann ich diesen löschen so das nach Aufruf der Funktion eine Größe von Null Bites angezeigt wird?

wartend und rumprobierend
Jessy
Der kürzeste Abstand zwischen zwei Menschen ist ein Lächeln
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Speicher freigeben

  Alt 20. Apr 2004, 13:15
Öhm, du solltest vielleicht nicht deinen gesamten RAM löschen, dann funzt nämlich gar nix mehr.
Windows legt ja auch seine ganzen Sachen im RAM ab, und nicht zusätzlich auf der Festplatte(falls ja mal jemand auf die Idee kommen sollte, den RAM zu leeren). Das wäre viel zu langsam.
Ich glaube nicht, dass du deinen gesamten Arbeitsspeicher leeren kannst.
Julian J. Pracht
  Mit Zitat antworten Zitat
Jessy_

Registriert seit: 7. Sep 2003
Ort: Ilmenau
17 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Speicher freigeben

  Alt 20. Apr 2004, 15:40
Ehm...das meinte ich ja auch garnicht. Ich will NUR das der Speicher nachdem das Proggie ausgeführt wurde wieder in den gleichen Zustand zurückversetzt wird. Sprich das die Größe des freien Speichers genauso ist wie vorher.
Der kürzeste Abstand zwischen zwei Menschen ist ein Lächeln
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Speicher freigeben

  Alt 20. Apr 2004, 15:44
Moin!

Dann musst du dafür sorgen, das alles was du in deinem Programm alloziierst und instanziierst auch wieder ordentlich freigibst...
Anders kann ich das auch nicht sagen - du musst in deinen Quellcode schauen.

Ansonsten ist auch grundlegend folgendes zu sagen:

1. Wenn dein Prozess beendet wird, dann wird der vom Programm belegte Speicher so oder so vollständig wieder freigegeben.
2. Windows legt sich Puffer und Caches im Speicher an und daher kann es sehr gut sein, das Windows dies auch beim Ausführen deines Programmes macht, bzw. vorhandene vergrössert und daher der Speicher nach deinem Programm immer ein wenig kleiner ist. Dies ist aber auch in so fern kein Problem, weil Windows speicher braucht, dann verkleinert er auch wieder seine Speicher und/oder lagert aus...

MfG
Muetze1
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Speicher freigeben

  Alt 20. Apr 2004, 15:49
Zitat von Jessy_:
Ich will NUR das der Speicher nachdem das Proggie ausgeführt wurde wieder in den gleichen Zustand zurückversetzt wird. Sprich das die Größe des freien Speichers genauso ist wie vorher.
Genau das ist der Fall. Wenn dein Programm (= Prozess) beendet wird, räumt Windows
(zumindest die Versionen NT/2000/XP) automatisch auf.
Auch offene Dateihandles usw. werden bei Prozessende automatisch geschlossen.
Allerdings sollte dies keine Entschuldigung für schlampiges Programmieren sein.
Jeder Speicher, jedes Handle oder sonstige Resource, die ein Prozess angefordert hat
soll er beim Ende wieder freigeben.
Manchmal ist der Taskmanager der Meinung es wäre nach Prozessende weniger RAM da wie vorher,
aber das ist nur ein Bug.
Andreas
  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 02:33 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