Soweit ich weiß, werden Windows-Betriebssysteme die Priorität eines Prozesses nur ändern, wenn Sie dazu aufgefordert werden. Dies bedeutet jedoch nicht, dass eine Priorität vom laufenden Programm nicht geändert werden kann. Es gibt eine .NET-Eigenschaft namens Process.PriorityClass, mit der die Priorität geändert werden kann. Vielleicht stellt VS fest, dass es die CPU-Auslastung reduzieren kann, um anderen Threads mehr CPU-Zeit zu gewähren?
Wird die Prozesspriorität vom Betriebssystem periodisch neu berechnet?
Ich habe eine Frage zum Zeitplan und zur Prozesspriorität von Win-7.
Das Szenario lautet: Ich habe einen Prozess, der vorrangig "Normal" ist.
Ich finde diesen Prozess oft auf Hintergrund (Low I / O) reduziert. Am Ende setze ich die Priorität wieder auf "Normal" oder "Above Normal", wird jedoch in wenigen Minuten wieder reduziert.
Ich habe versucht, die Priorität unter Verwendung des Standard-Windows-Task-Managers oder von procexp einzustellen (ich denke, es sollte keinen Unterschied geben).
Die Frage ist also: Wird die Prozesspriorität neu berechnet, um die E / A-Nutzung abzudecken? Der Prozess in dieser Situation ist Visual Studio 2015, das ziemlich viel HDD verwendet, was hier einen Engpass darstellen kann.
3 Antworten auf die Frage
Die Anpassung der Prozesspriorität in der von Ihnen beschriebenen Situation ist nicht ungewöhnlich.
Um die Dinge zu vereinfachen, stellen wir uns die Situation so vor: Höhere Priorität bedeutet im Allgemeinen, dass der Prozess häufiger "aufwacht" als ein Prozess mit niedrigerer Priorität (um einige Arbeiten auszuführen). In Anbetracht dessen, dass Ihr Prozess viele (zufällige) Festplatten-E / A-Vorgänge ausführt, bedeutet das Beibehalten einer hohen Priorität, dass er "aufwacht" und oft nur darauf wartet, dass die Festplatte Daten zurückgibt. Da der Prozesswechsel teuer und zeitaufwändig sein kann, führt das Herabsetzen der Priorität eines diskettenintensiven Prozesses zu einer besseren Prozessorauslastung. Mit anderen Worten: Durch die Anpassung der Prozesspriorität kann der Prozessor mehr Zeit für die Arbeit aufwenden, anstatt diese Zeit zwischen Prozessen zu wechseln.
Ich denke, es ist wahrscheinlicher, dass VS oder der Prozess selbst die erneute Priorisierung vornimmt.
Der Scheduler von Fenstern wird wahrscheinlich die E / A-Nutzung indirekt berücksichtigen (da er weniger häufig Prozesse einplanen wird, die schnell zurückkehren, wie Prozesse, die auf E / A warten). Die Prozesspriorität sollte jedoch eine Zahl sein, die vom Benutzer [oder anderen Programmen (einschließlich des Prozesses selbst)] festgelegt wird] und den Scheduler weiter beeinflussen. ... Genug von meiner wilden Vermutung.
Diese Antworten sollten Prio verwenden, um die Priorität eines Prozesses (durch einen Hintergrunddienst erzwungen) zu sichern, es kann auch in Ihrem Fall hilfreich sein.
Verwandte Probleme
-
12
Warum wird der Ordner / winsxs so groß und kann er verkleinert werden?
-
2
Erhöhte Berechtigungen für Startanwendungen in Windows?
-
14
PDF Viewer unter Windows
-
7
Welche Windows-Dienste kann ich sicher deaktivieren?
-
8
Firefox PDF-Plugin zum Anzeigen von PDF-Dateien im Browser unter Windows
-
1
Windows verliert das Bildschirmlayout
-
1
Gibt es eine Möglichkeit, Installationen / Updates zu verhindern, die meine Festplatte mit kryptisch...
-
1
Wie kann ich von Ubuntu aus über das Netzwerk auf Windows Vista-Drucker zugreifen?
-
6
Log Viewer unter Windows
-
3
Windows-Hintergrundproblem mit zwei Bildschirmen