Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Minimieren gibt Speicher frei

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.12.2007, 11:31 Uhr
~DeltaLogic
Gast


Hallo zusammen

wir haben in letzter Zeit beobachtet, das wenn eine Anwendung minimiert, der Ram-Speicher drastisch sinkt, bei unserer Anwendung um 80%.

Natürlich können wir nicht sagen, Kunde minimier mal. Habt ihr das Phenomen auch schonmal gehabt, gibt es ne Api die man aufrufen kann die diesen Effekt erzeugt?

Gibt es eine Api, um einen bestimmten Prozess zum auslagern zu zwingen

Danke für die Hilfe im Vorraus

Gruss
Torsten
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.12.2007, 11:35 Uhr
DeltaLogic



und jetzt dasselbe als angemeldeter User
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.12.2007, 12:27 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Nein das ist alleine Sache des Betriebsystems wie es das handhabt und das beim Minimieren der RAM Verbrauch sinkt (hab ich zumindest bei XP gerade auch so beobachten können)liegt halt daran das das BS meint das Programme würde erstmal nicht mehr benötigt werden.

Wenn du es jetzt wieder maximierst und weiterarbeitest hast du den RAM Verbrauch ja wieder schnell erreicht.
Die viel entscheidendere Frage dabei ist doch warum willst du das machen? Wenn ihr der Meinung seid das eure Anwendung zuviel RAM benötigt wird das ja dadurch nicht weniger, sondern nur wenn ihr Teile effizienter (soweit möglich) umprogrammiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.12.2007, 12:38 Uhr
DeltaLogic



HI Guy

also:

unsere Anwendung steigt rasch auf 80-100 MB, beim minimieren sinkt der Bedarf auf 7-10 Mb und steigt maximal nach dem maximieren wieder auf 30-40 MB

Umprogrammieren ist keine Option, wir verwenden halt viele Benutzerobjekte, Felder usw. Umprogrammieren würde heissen das wir das komplette Darstellungssystem über den haufen werfen müssen.

Bei Client-Serv-Anwendungen juckt uns das auch wenig, nur der Kunde den wir etzt haben, der nutzt Terminalserver, wo ca. 30 User auf 4 GigaRam verteilt werden sollen. Des soll ein Applikationsserver sein. Aufrüsten des Rams lässt das Gerät nicht zu.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.12.2007, 12:57 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von DeltaLogic:

unsere Anwendung steigt rasch auf 80-100 MB, beim minimieren sinkt der Bedarf auf 7-10 Mb und steigt maximal nach dem maximieren wieder auf 30-40 MB


Naja aber das heißt ja das ihr noch Sachen im Speicher haltet die gar nicht mehr benötigt werden (oder evtl. sogar Speicherlecks verursacht werden). Danach würde ich halt mal suchen und versuchen einzudämmen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.12.2007, 15:46 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hi,
wenn das programm minimiert wird, wird der benutzte speicher des programms meist sofort geswappt, wodurch auch teilweise dieser defragmentiert wird, wodurch ggf wieder einiges an speicher freiwird.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.12.2007, 18:22 Uhr
ao

(Operator)



Zitat von DeltaLogic:
wir verwenden halt viele Benutzerobjekte, Felder usw.

... und das dürfte der Knackpunkt sein. Diese ganzen Controls und User-Controls holen sich den Speicher, den sie brauchen, um sich selbst zu malen, und wenn das Fenster, auf dem sie liegen, minimiert wird, geben sie den Speicher wieder frei. Da kann man mal staunen, wieviel Resourcen nur für die Darstellung verbraucht werden.

Eine kleine Checkbox braucht nicht viel Speicher, aber größere Dokumenten-Ansichten, wenn ihr die habt, schon eher.

Wenn ihr Speicher sparen müsst, dann steigt doch mal tiefer in die Windows-Grafik ein und findet heraus, was man mit einem Control tun muss, damit es seinen Speicher freigibt. Ich bin da auch nicht so tief drin, aber vielleicht reicht es, das "Visible"-Property auf false zu stellen. Oder Hide() oder Show(false)) aufzurufen, das bewirkt dasselbe.

Rechnet aber damit, dass solche Aktionen euer Programm stark ausbremsen. Es rödelt dann halt wie wild im Speicher herum, wenn es die Ansicht umbaut. Ist halt so wie immer - wer am Speicher sparen will, zahlt mit Performance.

Bei einer Desktop-Anwendung würde ich klar sagen, das lohnt sich nicht, man kann besser einen Riegel RAM dazustecken, das ist billiger als lange am Programm rumoptimieren. Bei einer Terminal-Anwendung ist das ne spannende Frage, denn wenn man sowieso jedes Pixel übers Netz schicken muss, kann man vielleicht auch neu malen.

Vielleicht läufts drauf hinaus, dass eure Anwendung zwei Betriebsmodi bekommt: Einen Local-Modus, in dem alle Controls auch dann "visible" bleiben, wenn sie im Hintergrund stehen, und einen Terminal-Modus, in dem nur das "visible" ist, was vorn steht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: