Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:58

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Autor Nachricht
 Betreff des Beitrags: SetProcessWorkingSetSize
BeitragVerfasst: So Apr 11, 2004 19:27 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
Hat schon mal jemand Erfahrung mit der SetProcessWorkingSetSize funktion gemacht?

Mich würde interessieren ob es irgendetwas zu beachten gibt wenn man diese funktion benutzt. Generell verschiebt sie bei der benutzung mit diesen Parameter :
Code:
  1.  
  2.      SetProcessWorkingSetSize(GetCurrentProcess, dword(-1), dword(-1));
  3.  

anscheinend alle aktuell nicht benötigten daten aus dem RAM in die Auslagerungsdatei. Der Vorteil daran ist das damit der von der Anwendung auch nach dem schließen eines Formulars immer noch belegte RAM anscheinend einfach in die Auslgagerungsdatei verschoben wird.
Mir ist es nur gerade bei SharpDesk aufgefallen. Gleich nach dem Programmstart hat das ganze eine RAM Auslastung von ~10 MB.
Nachdem ich mal alle Formulare ein wenig benutzt habe war die RAM auslastung oftmals auf 20 MB. Jedoch nicht durch ein mem leak, der RAM wurde halt immer nur einmalig von den Formularen belegt. Jedoch wurde er weder nach schließen oder nach eventuellen freigeben der Formulare wieder komplett freigegeben. Zu den Anfangs 10 MB gab es keinen weg zurück. Der einmalig von den Formularen reservierte Speicher wurde niemals freigegeben. Mit dem aufrufen der SetProcessWorkingSetSize ist die RAM Auslastung dann sofort wieder auf 10 MB runter gegangen. Also wurde scheinbar alles aus dem RAM geschmissen was aktuell nicht benötigt wird.
Nach benutzen sind auch keine weiteren Nebeneffekte aufgetreten. Kein stocken oder nachladen bei Anwendung oder System.

laut Win32SDK steht in der Beschreibung der funktion :
Zitat:
BOOL SetProcessWorkingSetSize(

HANDLE hProcess, // open handle to the process of interest
DWORD dwMinimumWorkingSetSize, // specifies minimum working set size
DWORD dwMaximumWorkingSetSize // specifies maximum working set size
);

If both dwMinimumWorkingSetSize and dwMaximumWorkingSetSize have the value 0xffffffff, the function temporarily trims the working set of the specified process to zero. This essentially swaps the process out of physical RAM memory.


Ich bin da nur lieber etwas zögerlich ehe ich solche OS nahen funktionen einsetze. Könnt ihr mir zur benutzung dieser funktion genaueres sagen?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 1 Beitrag ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 16 Queries | GZIP : On ]