Laden...

Rechenintensive Prozesse bei hoher CPU- oder Speicherauslastung pausieren

Erstellt von digi333 vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.091 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 12 Jahren
Rechenintensive Prozesse bei hoher CPU- oder Speicherauslastung pausieren

Ich möchte mir ein Framework bauen, dass abhängig von der Performance des Rechners einen Prozess pausiert. Im Detail: Ich habe viele Anwendungen (z.B. Codierungsthread), die sehr rechenintensiv sind. Die möchte ich zur Laufzeit pausieren lassen wenn zum Beispiel der Prozessor über 70% ausgelastet ist oder der RAM von anderen Programmen über 70% gefüllt ist. Dafür gibt es natürlich viele Wege... welcher ist der Beste? Kennt jemand vielleicht schon ein existierendes Projekt?

C
1.214 Beiträge seit 2006
vor 12 Jahren

Ich glaube nicht, dass es für sowas ein allgemeines Framework gibt. Die Anforderung kommt ja auch wirklich nicht alle Tage. Du kannst ja selber probieren, sowas zu lösen. Wie stark der Prozessor ausgelastet ist, kannst du WMI abfragen, wie stark einzelne Prozesse den auslasten, auch. Jetzt könntest z.B. so einen Monitorthread schreiben, der alle 5-10 Sekunden prüft, ob du die Verarbeitung pausieren willst, und das z.B. über eine Semaphore signalisieren, die deine Workerthreads regelmäßig abprüfen.

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo digi333,

was spricht dagegen, die Priorität des rechenintensiven Prozesses oder Threads herunterzusetzen? Dann verbraucht er automatisch nur die CPU-Leistung, die gerade frei ist.

Die Speicherauslastung müsste man dann natürlich noch separat prüfen.

herbivore

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo digi333,

ich würde das auch so lösen wie herbivore vorgeschlagen hat, also dem Betriebssystem dies durch eine Einstellung mitteilen. Für Prozesse mittels Task-Manager und für Threads kann das auch bei der Thread-Erstellung eingestellt werden.

Über den RAM würde ich mir keine Sorgen machen, denn dazu müsste auch die Auslagerungsdatei mit berücksichtigt werden und das wird dann verzwickt.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"