AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Alternative zu Application.Minimize für RAM-Freigabe
Thema durchsuchen
Ansicht
Themen-Optionen

Alternative zu Application.Minimize für RAM-Freigabe

Ein Thema von Nogge · begonnen am 25. Nov 2005 · letzter Beitrag vom 26. Nov 2005
Antwort Antwort
Seite 1 von 2  1 2      
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#1

Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 16:03
Hallo Community,
Ich verwalte das Minimieren von Forms immer selbst, da ich u.a. mit der TNA arbeite und dafür die Form verstecken muss.
Delphi-Quellcode:
procedure TForm2.proc_WM_SysCommand(var Msg: TWMSysCommand);
begin
  if ( (Msg.CmdType and $FFF0) = SC_MINIMIZE ) then
  begin
    { -- Speicher freigeben -- }
    Application.Minimize;
    // hier wird beim ersten Minimieren kurz die TaskBar angezeigt ;_;
    { -- TaskBar-Eintrag entfernen -- }
    ShowWindow(Application.Handle,SW_HIDE);
    { -- Form verstecken -- }
    self.Hide;
  end else
    inherited;
end;
Dabei verwende ich vorher Application.Minimize, um Speicher beim Minimieren freizugeben, was mit einem einfachen Hide-Befehl nicht geschiet. Ich würde jetzt gern wissen, warum Windows den Speicher beim Minimieren freigibt und ob es eine Alternative zum Freigeben von RAM beim Minimieren gibt. Mein Grund für diese Frage ist in meinem Kommentar im Delphi-Code enthalten.

Bitte um Hilfe. Nogge
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 16:08
Hallo,

seit wann gibt Application.Minimize Speicher frei? Damit wird doch nur die Anwendung minimiert. Dabei werden wahrscheinlich ein paar Ressourcen freigegeben, aber das macht dann Windows, und zwar automatisch beim Minimieren.

Gruß
xaromz
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 16:09
Zitat von Nogge:
Dabei verwende ich vorher Application.Minimize, um Speicher beim Minimieren freizugeben, was mit einem einfachen Hide-Befehl nicht geschiet. Ich würde jetzt gern wissen, warum Windows den Speicher beim Minimieren freigibt und ob es eine Alternative zum Freigeben von RAM beim Minimieren gibt.
Welche Spalte im Taskmanager läßt dich dazu verleiden anzunehmen das Speicher freigegeben wird?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#4

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 16:10
Schau es Dir im TaskManager unter Speicherauslastung an. Wenn Du Dein Programm zum ersten mal regulär minimierst, wird ziemlich viel Speicher freigegeben.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 16:14
Zitat von Nogge:
Schau es Dir im TaskManager unter Speicherauslastung an. Wenn Du Dein Programm zum ersten mal regulär minimierst, wird ziemlich viel Speicher freigegeben.
das halte ich für ein Gerücht.
Evtl. zeigt auch der Taskmanager "irgendwas" an...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#6

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 16:17
Äh, fürs Anzeigen von "Irgendetwas" wurde der TaskManager bestimmt nicht konzipiert...
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 16:21
Zitat von RavenIV:
Zitat von Nogge:
Schau es Dir im TaskManager unter Speicherauslastung an. Wenn Du Dein Programm zum ersten mal regulär minimierst, wird ziemlich viel Speicher freigegeben.
das halte ich für ein Gerücht.
Evtl. zeigt auch der Taskmanager "irgendwas" an...
was meinst du mit "irgendwas"? also ich denke, dem taskmanager sollte man schon vertrauen können.

ich habe ein ähnliches problem. mein programm lädt zum start einige sounds mithilfe der bass.dll (um die sounds später quasi ohne große zeitverzögerung wiederzugeben).
wenn die anwendung startet, hat sie -lass mich lügen:- 2000K belegt, laut taskmanager. dann werden die sounds geladen und schwupps sind 8000K belegt. wenn ich jetzt minimiere, sind's nur noch etwa 1000K. nach dme wiederherstellen dann etwa 1200K.
das programm läuft wie geschmiert, es kommt nicht wieder auf die 8000K speicher.

wenn ich aber nach dem wiederherstellen weitere sounds reinlade, dann steigt der speicherverbrauch wieder an.

mich würde auch interessieren, wie man ohne zu minimieren den speicherverbrauch so reduzieren kann.

aenogym
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#8

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 17:09
Könnte es vielleicht sein, dass der Taskmanager den physisch verbrauchen Arbeitsspeicher anzeigt. Heisst ausgelagerter Speicher wird dort nicht berücksichtigt.

Es gibt noch eine weitere Spalte "Virtueller Speicher". Die dürfte beim Speicherverbrauch interessanter sein. Und wenn du mal in die Hilfe des Taskmanager schaust, dann steht da:

Zitat von Taskmanager-Hilfe:
Speichernutzung
Im Task-Manager die aktuellen Arbeitsseiten eines Prozesses (in Kilobytes). Die aktuellen Arbeitsseiten bestehen aus der Anzahl der derzeit speicherresidenten Seiten. Auf der Registerkarte Prozesse des Task-Managers lautet die Spaltenüberschrift Speichernutzung.
Siehe auch: Task-Manager
Heisst für mich die wirklich im Arbeitsspeicher gebraucht werden. Nicht das was ausgelagert ist.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 25. Nov 2005, 17:13
Windows gibt den Speicher nicht frei, sondern lagert ihn auf die Pagefile aus. Das bekommt man aber nur zusehen, wenn man die Spalten auch anzeigt.

http://www.fahrpult.de/icq/taskman.gif
Habs leider nur grad auf englisch, sorry. Option heißt Ansicht/Spalten auswählen und dann Virtueller Speicher oder so.

Für genauere Analysen kann ich nur den Prozess-Explorer empfehlen.

Daniel
Daniel Schuhmann
  Mit Zitat antworten Zitat
Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#10

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 26. Nov 2005, 02:23
Nach meinen bisherigen Studien bin ich nicht der Meinung Daniels. Windows gibt wirklich den in der Spalte "Mem Usage" angegebenen Speicher teilweise frei, da sich der virtuelle Speicher während des Minimierens (und somit während des Freigebens von Speicher) nicht erhöht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:22 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