web-dev-qa-db-ja.com

プログラムを最小化すると、コンピューターはより少ないリソースを使用しますか?

Windows 7でプログラムを最小化すると、最大化したままにするよりもメモリとCPUの使用量が少なくなりますか?

93
jao

はい。 MSサポートによると、 最小化されたアプリケーションのワーキングセットはトリミングされます 。これは、Process Explorerを使用して自分で確認できます。

以下は、ESPN.com Webサイトの単一のタブが読み込まれた、Windows 7 x64のFirefox 5.0の単一インスタンスのテストです。値はタスクマネージャを使用して読み取られました。

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

これは、Windows 7 x64でのいくつかの小さな画像を開いたPaint.NETの単一インスタンスのテストです。このアプリは、ほぼ間違いなくC/C++であるFirefoxとは異なり、Microsoft .NETで記述されています。

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
67
kinokijuf

はいといいえ。 GPUで使用するリソースは少なくなります-画面の更新の必要性は少なくなりますが、メインシステムのメモリやCPUでは使用されません。

タスクマネージャに表示されるワーキングセットのサイズはnotアプリケーションによって消費される実際のメモリ量です。ある時点でどれだけ使用できるかの上限です。

別のアプリが、アクティブになっていないプロセスのワーキングセットに割り当てられたメモリを要求した場合、アプリが実際に使用しているメモリの量を変更せずに、この数を減らすことができます。

27
Tim Brigham

「ワーキングセット」は「メモリ使用量」と同じではありません

プログラムがメモリのチャンクを必要とする場合、常にそれが必要になります。そうでない場合は、そうではありません。 プログラムを最小化しても、プログラムが突然メモリを必要としないわけではありません。ワーキングセットの「トリミング」は、単にページングアウト物理メモリからdiskへのメモリ、または単にディスク上の他の場所で利用できる場合はページ。 (後者の場合、メモリが不足している場合はOSがとにかく実行するため、「使用法」の問題ではなく、単にキャッシュの問題です。)どちらの場合でも、プログラムが使用するものを削減しない。単にデータを他の場所に移動します。

そうは言っても、CPU使用率に関しては、特定の条件でOSによって優先度ブーストと呼ばれるものがあるため、実際にフォアグラウンドアプリケーションがより多くのCPUを使用する可能性があります。詳細は here を参照してください。

12
user541686

それは、あなたが話しているアプリケーションと、アプリケーションのコーディング方法に本当に依存します。ただし、比較のために、プログラムは最大化および最小化されたときに同じ関数を実行するようにコード化されているとしましょう。

したがって、同じ基本機能がアプリケーションによって呼び出されている場合、プログラムは最小化されたときに同じ量のCPUを使用することを期待します。

ただし、アプリケーションを表示するためにレンダリングするグラフィックスが少なくなるため、プログラムを最小化すると、システムプロセスのCPU使用量が確実に少なくなります。おそらく、システムトレイアイコンだけになります。

つまり、アプリケーションを最小化すると、より多くのグラフィックアプリケーションが表示され、代わりにレンダリングされない限り、余分なグラフィックスの作業負荷によりCPU負荷が増加する可能性があります。

ここで説明しているすべての変更は、非常に低スペックのマシンを使用している場合を除いて、ほとんど無視できます。

4
iTom

ウィンドウを更新しないため、使用するリソースが少なくなります。

http://msdn.Microsoft.com/en-us/library/dd145193(v = VS.85).aspx

1
surfasb

めったにありません。最小化された時期を認識する対話型プログラムの場合、はい、CPU消費量が少なくなります。 Microsoft Wordのようなプログラムの場合、CPU使用率は低下しません。

グラフィックスを多用するアプリケーション(World of WarcraftやCall of Duty 3など)では、GPU(グラフィックスプロセッシングユニット)の使用量が大幅に減少します。

1
wizlog

私の知る限り、Windows 7では使用できませんが、Windows 8では、最小化されたプログラムが中断されます。

0
soandos