Richtig, und ich wäre dankbar, wenn jemand tatsächlich versuchen würde, mir dabei zu helfen... Auf der einen Seite hast Du recht. Auf der anderen Seite habe ich aber die Erfahrung gemacht, dass wenn ich zu viel Hintergrundinformation preisgebe, die Gefahr extrem groß ist, dass nur noch darüber diskutiert wird, ich mich nur noch rechtfertigen muss, weshalb ich die Frage stelle, die ich stelle, und irgendwann der Thread so viele inhaltsleere Antworten hat, dass weitere Forenteilnehmer sich angesichts des bereits hohen Antwortcounts gar nicht mehr die Mühe machen hineinzuschauen.
Leider ist dieser Thread hier auf dem besten Wege, das gleiche Schicksal zu erleiden... Aber gut, spielen wir das Spiel nach Deinen Regeln und schauen wir, ob es so endet wie von mir befürchtet.
Konkret geht es mir um den Prozess audiodg.exe, bei dem es sich um den Dienst "Windows Audio Endpoint Builder" (jedenfalls bei einem englischsprachigen Windows 7) handelt. Ich betreibe häufiger Anwendungen mit Soundausgabe, die von ihrer Programmierung her nicht alle 4 Kerne meiner Haswell-CPU auslasten können. Nun hat aber Windows in solchen Fällen die unselige Angewohnheit, solche Anwendungen in Windeseile von Kern zu Kern rotieren zu lassen in dem verzweifelten Versuch, alle Kerne gleichmäßig auszulasten. Klappt natürlich nicht, da die Anwendung nicht hinreichend parallelisierend programmiert ist. Also nimmt sie die gesamte Rechenlast jeweils auf den nächsten Kern mit usw. In der Konsequenz wird verhindert, dass einzelnen Kerne der CPU in die tiefen Ruhezustände wechseln können, wo sie so gut wie keinen Strom mehr verbrauchen bzw. ganz abgeschaltet werden (Stichwort Intel PowerGate-Technologie). Meines Wissen hat auch Microsoft - nach Jahren - diese schon zu NT 4.0-Zeiten existierende Schwäche eingestanden und, wenn ich das richtig mitgekriegt habe, bei Windows 8.1 eine pfiffigere Kernbelegungsstrategie implementiert.
Unter Windows 7 kann ich diesen Effekt weitgehend verhindern, indem ich diese Anwendungen von der Affinität her auf nur so viele Kerne beschränke, wie sie tatsächlich nutzen können.
Daneben gibt es aber auch noch jenen zu Windows gehörenden Dienst audiodg.exe. Als hardwarenaher Dienst muss er unter dem Local Service-Account laufen, sonst funktioniert er nicht richtig. Dabei erzeugt er CPU-Auslastungen im unteren zweistelligen Bereich. Das ist zu wenig, um einen Kern ordentlich auszulasten, aber genug, um den Rotationsmechanismus zu triggern und damit die wirksamsten CPU-Schlafzustände zu verhindern.
Die Rechenlast von audiodg.exe ist meines Erachtens nicht so groß, dass ich wahrnehmbare Auswirkungen hätte, wenn ich den Dienst mit auf die Kerne zwinge, auf die ich die Hauptanwendungen beschränke. Dann würden die übrigen Kerne praktisch völlig brachliegen (da alles übrige, was zu Windows gehört, normalerweise schläft bzw. Kernlasten unter 1% erzeugt). Windows würde dann für diese Kerne die hohen Schlafzustände nutzen. Ich hätte ohne wahrnehmbare Performancenachteile einen verringerten Stromverbrauch und weniger Wärmeentwicklung. (Ganz nebenbei gibt es doch auch noch einen kleinen Performancegewinn, wenn nicht rotiert wird, weil nämlich die Chance auf Cache Hits steigt, wenn die Anwendung auf demselben Kern bleibt.)
Dazu müsste es mir aber gelingen, die Prozessoraffinität von audiodg.exe einzuschränken. Dies ist ein Problem, weil audiodg.exe unter Local Service-Account läuft und vom Administratoraccount nicht verändert werden darf.