关闭OSX上所有应用程序的窗口会发生什么?


8

我习惯于Windows,当我关闭应用程序的最后一个窗口时,应用程序将从任务栏,Alt+ Tab菜单等中消失。因此,让我感到有些意外的是,应用程序的图标仍然位于我的Dock和Command+ TabWindows中。

在该状态与我完全关闭(例如Command+ Q)应用程序之间,计算机的内存,CPU使用率等是否发生变化?(如果有的话,我有OS X 10.8。)

Answers:


12

对于在关闭最后一个窗口时是否必须退出应用程序还是该应用程序是否继续运行尚无共识,因此该决定留给每个开发人员根据每个应用程序来决定。事实是,退出某个应用程序确实会释放所占用的资源-即使某些文件和代码仍存储在RAM或缓存中,直到这些存储被刷新或以后用于缓存其他应用程序和文件为止。

此外,没有限制,禁止在不应执行任何实际任务的情况下进行错误的编码,占用内存,使用CPU,因此也会因情况而异。

Windows和OS X都具有很好的调度智能,分页系统,线程控制等...,并且在关闭内核以及根据负载降低/提高频率方面,CPU都是相同的,以节省功耗并提供“当只有一个内核正在执行单个线程时,将显示“涡轮增压”。

OS X开始让应用程序发出信号,表明它们支持突然终止-以便OS可以为应用程序开发人员处理自动终止,突然终止和自动文档保存(加上版本)。因此,即使您已告诉操作系统运行程序,它也可以并且将决定“退出”该过程,以便在您用计算机做其他事情时不会消耗资源。

最后,在OS X硬件上使用PowerNap时,唤醒和唤醒之间的界线开始变得模糊,因为系统部分唤醒以执行定期的网络任务,这使得OS X在考虑应用程序和资源使用方面与传统的UNIX和Windows有所不同。

更多阅读:


1
尽管这不是硬性规定,但是基于文档的应用程序通常在所有窗口关闭时仍保持运行(例如TextEdit或Mail),而单窗口应用程序通常在其一个窗口关闭时退出(例如系统偏好设置或App Store) 。如果某个应用仅由一个窗口组成,则其原因可能是,如果没有打开该窗口,您几乎无能为力(当然,有例外,例如iTunes)。
daGUY 2013年

3

这里已经给出的答案是一个很好的答案,而且非常精确,但是我只想将其分解为外行的术语。

当您关闭所有窗口时,某些程序会终止,而其他程序则不会。此外,某些程序在设置中有一个选项,用户可以在其中决定关闭最后一个窗口时是否要退出程序。

关于内存使用情况,OS X使用的内存管理旨在将最大数量的内存分配给最主要的(活动)应用程序,同时限制非活动应用程序使用的内存量。但是,正如已经提到的那样,它的工作方式主要取决于每个程序的编码情况。


1
有趣-我从未听说过VM系统更喜欢活动窗口。+1是一个简短的直接答案。如果您可以链接到有关内存优化的详细信息,那就太好了。
bmike
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.