Что происходит, когда я закрываю все окна приложения в OSX?

8

Я привык к Windows, где приложения закрываются из панели задач, Alt+ Tabменю и т. Д., Когда я закрываю их последнее окно; поэтому для меня немного неожиданно, что значок приложения все еще находится в моей док-станции и в моих окнах Command+ Tab.

Меняется ли память компьютера, загрузка процессора и т. Д. Между этим состоянием и когда я полностью закрываю (например, Command+ Q) приложение? (У меня OS X 10.8, если это имеет значение.)

Марк Рушаков
источник

Ответы:

12

Не существует единого мнения о том, должно ли приложение закрываться при закрытии последнего окна или если приложение продолжает работать, поэтому каждый разработчик должен принять решение о том, какое приложение должно быть приложено. Что действительно верно, так это то, что выход из приложения высвобождает ресурсы, которые он потребовал, даже если некоторые файлы и код все еще хранятся в ОЗУ или кеше, пока эти хранилища не будут сброшены или использованы для кэширования других приложений и файлов в более позднее время.

Кроме того, нет никаких ограничений, запрещающих плохое кодирование, переключение памяти, использование процессора, когда не нужно выполнять реальные задачи, так что это также зависит от конкретного случая.

Как Windows, так и OS X имеют очень хорошие возможности планирования смарт-систем, систем подкачки, управления потоками и т. Д., И процессор одинаков с точки зрения выключения ядер и снижения / повышения частоты в зависимости от нагрузки для экономии энергии и обеспечения " Turbo Boost ", когда только одно ядро ​​выполняет один поток.

OS X начинает давать приложениям сигнал о том, что они поддерживают внезапное завершение работы, чтобы ОС могла обрабатывать автоматическое завершение, внезапное завершение и автоматическое сохранение документов (плюс версии) для разработчика приложения. Таким образом, даже если вы указали ОС запустить программу, она может и примет решение «выйти» из процесса, чтобы он не потреблял ресурсы, пока вы выполняете другие действия с компьютером.

Наконец, с PowerNap на оборудовании OS X грань между alseep и пробуждением начинает размываться, когда система частично просыпается, выполняя периодические сетевые задачи, которые делают OS X немного отличающейся от традиционных UNIX и Windows с точки зрения мышления о приложениях и использовании ресурсов.

Больше чтения:

bmike
источник
1
Хотя это не является жестким правилом, приложения на основе документов обычно продолжают работать, когда все их окна закрыты (например, TextEdit или Mail), тогда как приложения с одним окном обычно закрываются, когда их одно окно закрыто (например, Системные настройки или Магазин приложений). , Причина этого в том, что если приложение состоит только из одного окна, то, вероятно, мало что можно сделать с ним без открытого окна (конечно, есть исключения, например, iTunes).
daGUY
3

Ответ, который уже дан здесь, является хорошим ответом и очень точным, но я просто хочу разбить его на непрофессиональные условия для вас.

Некоторые программы завершают работу, когда вы закрываете все их окна, другие - нет. Кроме того, некоторые программы имеют опцию в настройках, где вы, пользователь, можете решить, хотите ли вы выйти из программы после закрытия последнего окна.

Что касается использования памяти, OS X использует управление памятью, разработанное, чтобы направить большую часть памяти к передовому (активному) приложению, ограничивая, сколько памяти используется приложениями, которые не являются активным приложением. Как уже упоминалось, однако, насколько хорошо это работает, во многом зависит от того, насколько хорошо была закодирована каждая отдельная программа.

Гэвин Андерсон
источник
1
Интересно - я никогда не слышал о том, чтобы система виртуальных машин предпочитала активные окна. +1 для более короткого прямого ответа. Если бы вы могли ссылаться на детали по оптимизации памяти, это было бы здорово.
bmike