Verbraucht ein Computer weniger Ressourcen, wenn Programme minimiert werden?

93

Wenn Programme in Windows 7 minimiert werden, verbrauchen sie weniger Speicher und CPU, als sie maximiert zu lassen?

jao
quelle

Antworten:

67

Ja. Laut MS Support wird der Arbeitssatz für eine minimierte Anwendung gekürzt . Sie können dies selbst mit Process Explorer überprüfen.

Hier ist ein Test einer einzelnen Instanz von Firefox 5.0 unter Windows 7 x64 mit einem einzelnen Tab der ESPN.com-Website. Die Werte wurden mit dem Task-Manager gelesen.

type                 not minimised  minimised     diff
------------------------------------------------------
working set               165,752k   163,768k  -1,984k
peak working set          169,624k   169,624k      N/A
mem (private working set) 121,600k   119,576k  -2,024k
commit size               135,576k   133,504k     -72k
paged pool                    396k       397k      +1k
np pool                        82k        81k      -1k
handles                        504        483      -21
threads                         34         31       -3
user objects                    40         44       +4
GDI objects                     71         75       +4

Hier ist ein Test einer einzelnen Instanz von Paint.NET unter Windows 7 x64 mit einigen kleinen geöffneten Bildern. Diese App wurde im Gegensatz zu Firefox, das mit ziemlicher Sicherheit C / C ++ ist, in Microsoft .NET geschrieben.

type                 not minimised  minimised     diff
------------------------------------------------------
working set               125,904k   125,256k    -684k
peak working set          217,836k   217,836k      N/A
mem (private working set)  61,844k    61,844k       0k
commit size               102,388k   102,384k      -4k
paged pool                    542k       541k      -1k
np pool                        59k        59k       0k
handles                        741        741        0
threads                         19         19        0
user objects                   276        273       -3
GDI objects                    489        491       +2
kinokijuf
quelle
7
Wow, das ist interessant und Sie haben eine KB, um es zu sichern. +1
Supercereal
57
Dies gilt nicht für moderne Versionen von Windows (7, Vista). Wenn auf einem modernen Betriebssystem der Speicher für etwas benötigt wird, schneidet das Betriebssystem die residenten Arbeitssätze aller Prozesse auf ein Minimum oder ein Minimum ab (je nachdem, wie lange sie zuletzt auf die Speicherseiten zugegriffen haben). Und wenn der Speicher aus irgendeinem Grund nicht benötigt wird, wäre es töricht, ihn zu kürzen - warum die Leistung einer Anwendung unentgeltlich verringern, wenn genügend Speicher vorhanden ist?
David Schwartz
6
Wow, die Leute mögen keine Antwort ... Hat jemand einen Beweis für das Gegenteil? So wie ich es sehe, hat Kinokijuf tatsächlich einige Beweise. Ihr sagt, dass es nicht auf Windows 7 und Vista zutrifft, aber keine Quelle anbietet ... Ihr testet es nicht einmal: \ Arbeitsset und zugewiesener Speicher sind zwei verschiedene Dinge . Der Process Explorer ist die einzige Möglichkeit, dies zu testen.
Supercereal
5
Es ist erwähnenswert, dass die Reduzierung des Einsatzes von Systemressourcen trivial ist: Im angegebenen Beispiel wird durch Minimierung der Anwendung der Arbeitssatz nur um ungefähr 1,2% reduziert.
BGVAUGHAN
5
Beachten Sie das Fehlen von Win32-Entwicklern in diesem Kommentarthread. Es gibt eine Reihe von Win32-Ereignissen, bei denen minimierte Anwendungen übersprungen werden. Auch wenn es keine nennenswerten Speichereinsparungen gibt, ist die CPU-Auslastung dennoch gespart.
Surfasb
27

Ja und nein. Sie werden weniger Ressourcen auf Ihrer GPU verbrauchen - weniger Bildschirmaktualisierungen - aber nicht auf Ihrem Hauptsystemspeicher oder Ihrer CPU.

Die im Task-Manager angezeigte Größe des Arbeitsspeichers entspricht nicht dem tatsächlichen Speicherbedarf einer Anwendung. Es ist eher eine Obergrenze dafür, wie viel es zu einem bestimmten Zeitpunkt verbrauchen könnte.

Wenn eine andere App Speicher anfordert, der dem Arbeitsbereich eines Prozesses zugewiesen ist, der nicht aktiv ist, kann diese Nummer gesenkt werden, ohne dass die Menge des von der App tatsächlich verwendeten Speichers geändert wird.

Tim Brigham
quelle
Ich hasse es wirklich, Antworten abzustimmen, aber das ist einfach falsch ... Wenn Sie mich vor 10 Minuten gefragt hätten, hätte ich gedacht, Sie hätten Recht.
Supercereal
3
@Lieven die beleidigende Zeile, für mich zumindest, und warum die Ablehnung steht: "Sie werden weniger Ressourcen auf Ihrer GPU verwenden - weniger Notwendigkeit für Bildschirmaktualisierungen - aber nicht auf Ihrem Hauptsystemspeicher oder Ihrer CPU." In der Frage heißt es ausdrücklich: "Verbrauchen sie weniger Speicher und CPU, als dass sie maximiert bleiben?" Die Antwort lautet laut MS zumindest (und ich werde MS hier vertrauen, seit sie es geschrieben haben), ja, es verbraucht weniger Ressourcen. Er fragt nicht nach der Leistung der Anwendung, während sie minimiert ist, nur wenn sie weniger Ressourcen verbraucht.
Supercereal
14
@Kyle Dieser KB-Artikel ist 5 Jahre alt. Dies gilt nicht für moderne Speicherverwaltungsschemata. (Und wenn Sie meinen Kommentar zu kinokijufs Antwort sehen, werden Sie sehen, warum es überhaupt eine schlechte Idee war - mit Ausnahme von Betriebssystemen, die die Aktualität der Seitennutzung nicht nachverfolgen können.)
David Schwartz
1
Die Fußnoten besagen, dass es für NT4, 2000 und XP gilt. Ich bezweifle, dass sich seitdem etwas geändert hat.
Kinokijuf
4
Und ich kann auf meinem Vista-Computer (mit Process Explorer) bestätigen, dass der Arbeitssatz immer noch nicht funktioniert.
Kinokijuf
12

"Working Set" ist NICHT dasselbe wie "Memory Usage"

Wenn ein Programm einen Teil des Speichers benötigt, wird es immer benötigt. Wenn nicht, dann nicht. Durch das Minimieren des Programms wird der Speicher nicht plötzlich "nicht benötigt". „Trimmen“ der Arbeitssatz wird einfach Paging aus den Speicher von physischen Speicher auf die Festplatte , oder einfach das Entfernen der Seite , wenn es auf der Platte verfügbar anderswo. (Im letzteren Fall erledigt das Betriebssystem dies ohnehin, wenn nicht genügend Arbeitsspeicher vorhanden ist. Es handelt sich also nur um ein Caching-Problem und nicht um ein Nutzungsproblem.) In beiden Fällen wird die vom Programm verwendete Leistung nicht reduziert. es lediglich siedelt die anderswo Daten.

Was die CPU-Auslastung betrifft, gibt es eine sogenannte Prioritätserhöhung durch das Betriebssystem unter bestimmten Bedingungen, die in der Tat dazu führen kann, dass eine Vordergrundanwendung mehr CPU verbraucht. Einzelheiten finden Sie hier .

Mehrdad
quelle
4

Es hängt wirklich von der Anwendung ab, über die Sie sprechen, und davon, wie die Anwendung codiert ist. Nehmen wir jedoch zum Vergleich an, dass das Programm so codiert ist, dass es die gleichen Funktionen ausführt, wenn es maximiert und minimiert wird.

Wir würden daher erwarten, dass das Programm bei Minimierung die gleiche Menge an CPU verbraucht, wenn die Anwendung die gleichen zugrunde liegenden Funktionen aufruft.

Ihre Systemprozesse werden jedoch mit Sicherheit weniger CPU verbrauchen, wenn die Programme minimiert werden, da weniger Grafiken für die Anwendungsansicht gerendert werden müssen, wahrscheinlich nur ein Taskleistensymbol.

Dies gilt nur, wenn Sie nach dem Minimieren der Anwendung veranlassen, dass eine grafischere Anwendung angezeigt und daher stattdessen gerendert wird. Jetzt kann die CPU-Auslastung aufgrund der zusätzlichen Grafikarbeitslast zunehmen.

Alles in allem werden die Änderungen, von denen wir hier sprechen, wahrscheinlich zu vernachlässigen sein, es sei denn, Sie arbeiten auf einer Maschine mit sehr niedrigen technischen Daten.

iTom
quelle
-1, für Irrelevanzen. Für Vergleiche musste man immer von Ceteris paribus ausgehen
Lie Ryan
2
Wusste nicht, dass Annahmen eine schlechte Sache sind, wenn sie klargestellt werden und beide Möglichkeiten abdecken.
iTom
Bestimmte Annahmen sind irrelevant und daher nutzlos, auch wenn sie klargestellt werden. Wenn das Programm so geschrieben ist, dass die Minimierung das Programm beendet, verbraucht der Computer offensichtlich viel weniger Ressourcen. Diese Annahme ist für die Diskussion völlig unbrauchbar.
Lie Ryan
1

Selten. Für ein interaktives Programm, das erkennt, wann es minimiert ist, wird weniger CPU-Leistung benötigt. Bei Programmen wie Microsoft Word wird die CPU-Auslastung nicht verringert.

Bei grafikintensiven Anwendungen (z. B. World of Warcraft oder Call of Duty 3) würde die GPU-Auslastung (Graphics Processing Unit) erheblich sinken.

wizlog
quelle
Ein interaktives Programm muss nicht "erkennen, wann es minimiert ist", um weniger CPU zu verbrauchen, da es einfach keine Tastatur- / Mausfenstermeldungen zum Antworten hat.
Random832
@ Random832 Ich bin mir nicht sicher, was Sie ganz meinen, aber ich wollte die Art von Programm (wie ein Spiel) vermitteln, das pausiert, wenn es den Fokus verliert. Diese Spiele verbrauchen im Allgemeinen weniger CPU-Leistung, wenn sie minimiert werden.
Wizlog
0

Während es meines Wissens in Windows 7 nicht verfügbar ist, werden in Windows 8 minimierte Programme angehalten.

soandos
quelle
Gilt das auch für klassische Programme? Es ist für die U-Bahn notwendig, da Sie Software nicht wirklich schließen können
Journeyman Geek
Ja, zumindest habe ich das in der Beta gesehen. (Beispiel verwendet wurde Internet Explorer, die Nicht-U-Bahn-Version)
soandos
Warten Sie am besten, bis Win8 veröffentlicht wird, anstatt darüber zu spekulieren, was von sehr frühen Betaversionen mit oder ohne Übertragbarkeit ausgeht.
Jeff Atwood
Nun, der Aufhängungsteil für die Metro-Apps kann nicht verschwinden, daher wäre ich relativ zuversichtlich, dass der Rest des Aufhängungssystems an seinem Platz bleibt. Es ist auch Teil des aktuellen Win7-Systems, obwohl es nicht automatisch ist.
Soandos