Использует ли компьютер меньше ресурсов, когда программы свернуты?

93

Когда программы свернуты в Windows 7, используют ли они меньше памяти и ЦП, чем оставляют их развернутыми?

Джао
источник

Ответы:

67

Да. Согласно MS Support, рабочий набор для свернутого приложения обрезается . Вы можете проверить это самостоятельно с помощью Process Explorer.

Вот тест одного экземпляра Firefox 5.0 в Windows 7 x64 с одной загруженной вкладкой сайта ESPN.com. Значения были прочитаны с помощью диспетчера задач.

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

Вот тест одного экземпляра Paint.NET в Windows 7 x64 с несколькими открытыми небольшими изображениями. Это приложение было написано на Microsoft .NET в отличие от Firefox, который почти наверняка является C / C ++.

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
источник
7
Вау, это интересно, и у вас есть КБ, чтобы поддержать это. +1
Supercereal
57
Это не относится к современным версиям Windows (7, Vista). В современной ОС, если для чего-то нужна память, операционная система обрезает резидентные рабочие наборы всех процессов, минимизированные или нет (в зависимости от того, как недавно они обращались к страницам памяти). И если память не нужна по какой-либо причине, было бы глупо ее обрезать - зачем бесполезно снижать производительность приложения, когда памяти много?
Дэвид Шварц
6
Ух ты, так что людям не нравится ответ ... У кого-нибудь есть доказательства обратного? На мой взгляд, у Kinokijuf есть какое-то доказательство: вы, ребята, говорите, что это не относится к Windows 7 и Vista, но не предлагают никакого источника ... Вы, ребята, даже не тестировали его: \ рабочий набор и выделенная память - две разные вещи , Process Explorer - единственный способ проверить это.
Supercereal
5
Кажется, стоит отметить, что сокращение использования системных ресурсов является тривиальным: в приведенном примере при минимизации приложения рабочий набор сокращается только примерно на 1,2%.
bgvaughan
5
Обратите внимание на отсутствие разработчиков Win32 в этой ветке комментариев. Существует ряд событий Win32, которые пропускают свернутые приложения. Даже если нет заметной экономии памяти, это, безусловно, экономия на использовании процессора.
surfasb
27

И да и нет. Они будут использовать меньше ресурсов на вашем GPU - меньше потребуется для обновления экрана - но не на вашей основной системной памяти или процессоре.

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

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

Тим Бригам
источник
Я действительно ненавижу голосовать за ответы, но это просто неправильно ... Если бы вы спросили меня 10 минут назад, я бы подумал, что вы правы.
Supercereal
3
@ Позвольте мне обидеться, по крайней мере, для меня, и почему стоит отрицательный голос: «Они будут использовать меньше ресурсов на вашем графическом процессоре - меньше потребуется для обновления экрана - но не на вашей основной системной памяти или ЦП». Вопрос явно гласит: «они используют меньше памяти и ЦП, чем оставляют их максимально развернутыми», ответ на который, по крайней мере, по мнению MS (и я буду доверять MS здесь, так как они его написали), да, он использует меньше ресурсов. Он ничего не спрашивает о работоспособности приложения, пока оно свернуто, просто если оно будет использовать меньше ресурсов.
Supercereal
14
@Kyle Этой статье в КБ 5 лет. Это не относится к современным схемам управления памятью. (И если вы увидите мой комментарий к ответу kinokijuf, вы поймете, почему это была плохая идея, во-первых, за исключением операционных систем, которые не могут отслеживать время использования страницы.)
Дэвид Шварц
1
В сносках говорится, что это яблоки для NT4, 2000 и XP. Я сомневаюсь, что что-то изменилось с тех пор.
киноюф
4
И я могу подтвердить на моей машине Vista (с Process Explorer), что рабочий набор все еще падает.
kinokijuf
12

«Рабочий набор» НЕ совпадает с «Использование памяти»

Если программе нужен кусок памяти, она всегда будет нужна. Если это не так, то это не так. Минимизация программы не приводит к тому, что программа «не требует» памяти. «Обрезка» рабочего набора - это просто выгрузка памяти из физической памяти на диск или просто удаление страницы, если она доступна в другом месте на диске. (В последнем случае ОС делает это в любом случае, если есть нехватка памяти, так что это просто проблема кеширования, а не проблема «использования».) В любом случае это не уменьшает то, что использует программа; он просто перемещает данные в другое место.

Тем не менее, в отношении использования ЦП: существует нечто, называемое повышением приоритета, которое ОС дает в определенных условиях, что может привести к тому, что приоритетное приложение будет использовать больше ЦП. Смотрите здесь для деталей.

Mehrdad
источник
4

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

Поэтому мы ожидаем, что программа будет использовать тот же объем ЦП при сворачивании, если приложение вызывает те же базовые функции.

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

То есть, если после минимизации приложения вы не заставите более графическое приложение отображаться и, следовательно, визуализироваться вместо этого, теперь загрузка ЦП может увеличиться из-за дополнительной графической рабочей нагрузки.

В целом изменения, о которых мы здесь говорим, вероятно, будут незначительными, если только вы не работаете на машине с очень низкими характеристиками.

iTom
источник
-1, за неактуальность. Для любых сравнений вы всегда должны были предполагать, что при прочих равных условиях
Lie Ryan
2
Не осознавал, что предполагать было плохо, когда прояснялся и охватывал обе возможности.
iTom
некоторые предположения не имеют значения, поэтому бесполезны, даже если они разъяснены. Если программа написана таким образом, что минимизация прекратит работу программы, это, очевидно, заставит компьютер использовать гораздо меньше ресурсов; это предположение совершенно бесполезно для обсуждения.
Ли Райан
1

Редко. Для интерактивной программы, которая распознает, когда она свернута, да, она будет использовать меньше ресурсов процессора. Для таких программ, как Microsoft Word, загрузка ЦП не снизится.

Для приложений с интенсивной графикой (например, World of Warcraft или Call of Duty 3) значительно снизится использование графических процессоров (GPU).

wizlog
источник
Интерактивная программа не должна «распознавать, когда она свернута», чтобы использовать меньше ресурсов ЦП из-за того, что у нее просто нет сообщений на клавиатуре / окне мыши для ответа.
Random832
@ Random832 Я не совсем понимаю, что вы имеете в виду, однако я хотел передать тип программы (например, игры), которая останавливается, когда теряет фокус. Эти игры, как правило, потребляют меньше ресурсов процессора при минимальном использовании.
wizlog
0

Хотя он не доступен в Windows 7, насколько мне известно, в Windows 8 свернутые программы приостановлены.

soandos
источник
Это для классических программ? Это необходимо для метро, ​​так как на самом деле вы не можете закрыть программное обеспечение
Journeyman Geek
Да, по крайней мере, это то, что я видел в бета-версии. (в качестве примера использовался Internet Explorer, версия без метро)
soandos
Лучше подождать, пока выйдет Win8, чем размышлять о том, что может или не может быть перенесено с очень ранних бета-версий.
Джефф Этвуд
Ну, часть подвески для приложений метро не может исчезнуть, поэтому я был бы относительно уверен в том, что остальная часть системы подвески останется на месте. Это также часть текущей системы win7, хотя она не является автоматической.
Soandos