Was passiert, wenn ich alle Fenster einer Anwendung unter OSX geschlossen habe?

8

Ich bin an Windows gewöhnt, bei dem Anwendungen aus meiner Taskleiste, dem Alt+ TabMenü usw. verschwinden , wenn ich das letzte Fenster schließe. Daher ist es für mich etwas unerwartet, dass sich das Symbol einer Anwendung immer noch in meinem Dock und in meinen Command+ TabFenstern befindet.

Ändert sich der Arbeitsspeicher, die CPU-Auslastung usw. des Computers zwischen diesem Status und dem vollständigen Schließen (z. B. Command+ Q) einer Anwendung? (Ich habe OS X 10.8, wenn das wichtig ist.)

Mark Rushakoff
quelle

Antworten:

12

Es besteht kein Konsens darüber, ob die App beendet werden muss, wenn Sie das letzte Fenster schließen, oder ob die App weiterhin ausgeführt wird. Daher bleibt die Entscheidung jedem Entwickler überlassen, App für App zu entscheiden. Was stimmt, ist, dass das Beenden einer App die benötigten Ressourcen freigibt - selbst wenn einige Dateien und Code noch im RAM oder Cache gespeichert sind, bis diese Speicher geleert oder zu einem späteren Zeitpunkt zum Zwischenspeichern anderer Apps und Dateien verwendet werden.

Darüber hinaus gibt es keine Einschränkung, die eine schlechte Codierung verbietet, den Speicher überlastet und die CPU verwendet, wenn keine echten Aufgaben ausgeführt werden sollen, so dass dies ebenfalls von Fall zu Fall unterschiedlich ist.

Sowohl Windows als auch OS X verfügen über sehr gute Planungs-Smarts, Paging-Systeme, Thread-Steuerung usw., und die CPU ist in Bezug auf das Herunterfahren von Kernen und das Verringern / Erhöhen der Frequenz basierend auf der Last gleich, um Strom zu sparen und eine " Turbo Boost ", wenn nur ein Kern einen einzelnen Thread ausführt.

OS X beginnt damit, Apps signalisieren zu lassen, dass sie eine plötzliche Beendigung unterstützen - so dass das Betriebssystem die automatische Beendigung, plötzliche Beendigung und das automatische Speichern von Dokumenten (plus Versionen) für einen App-Entwickler verarbeiten kann. Selbst wenn Sie dem Betriebssystem gesagt haben, dass es ein Programm ausführen soll, kann und wird es entscheiden, den Prozess zu "beenden", damit keine Ressourcen verbraucht werden, während Sie andere Dinge mit dem Computer tun.

Schließlich beginnt mit PowerNap auf OS X-Hardware die Grenze zwischen Schlaf und Wach zu verschwimmen, wenn das System teilweise aufwacht, um periodische Netzwerkaufgaben auszuführen, die OS X in Bezug auf Apps und Ressourcennutzung etwas anders machen als herkömmliches UNIX und Windows.

Lesen Sie mehr:

bmike
quelle
1
Obwohl es keine feste Regel ist, dokumentenbasierte Anwendungen typischerweise bleiben laufen , wenn alle ihre Fenster geschlossen sind (man denke TextEdit oder Mail), während Single-Fenster typischerweise apps beenden , wenn ihr ein Fenster geschlossen ist (man denke an die Systemeinstellungen oder den App Store) . Der Grund dafür: Wenn eine App nur aus einem Fenster besteht, können Sie wahrscheinlich wenig damit anfangen, ohne dass dieses Fenster geöffnet ist (es gibt natürlich Ausnahmen wie iTunes).
daGUY
3

Die hier bereits gegebene Antwort ist eine gute Antwort und sehr präzise, ​​aber ich möchte dies nur in Laienbegriffe für Sie aufteilen.

Einige Programme werden beendet, wenn Sie das gesamte Fenster schließen, andere nicht. Darüber hinaus verfügen einige Programme über eine Option in Einstellungen, in denen Sie als Benutzer entscheiden können, ob das Programm beendet werden soll, wenn das letzte Fenster geschlossen wird.

In Bezug auf die Speichernutzung verwendet OS X die Speicherverwaltung, um die meiste Speichermenge an die vorderste (aktive) App weiterzuleiten und gleichzeitig zu beschränken, wie viel Speicher von Apps verwendet wird, die nicht die aktive App sind. Wie bereits erwähnt, hängt es jedoch weitgehend davon ab, wie gut jedes einzelne Programm codiert wurde.

Gavin Anderson
quelle
1
Interessant - Ich habe noch nie davon gehört, dass das VM-System die aktiven Fenster bevorzugt. +1 für eine kurze direkte Antwort. Wenn Sie auf Details zur Speicheroptimierung verweisen könnten, wäre das großartig.
bmike