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


93

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

回答:


67

はい。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

7
うわー、これは面白いですし、バックアップするKBがあります。+1
Supercereal

57
これは、Windowsの最新バージョン(7、Vista)には適用されません。最新のOSでは、何かにメモリが必要な場合、オペレーティングシステムはすべてのプロセスの常駐ワーキングセットを最小化するかどうかに関係なく(メモリページにアクセスした日時に基づいて)トリムします。また、何らかの理由でメモリが必要ない場合、それをトリミングするのは愚かなことです。メモリが十分にあるのに、アプリケーションのパフォーマンスが不必要に低下するのはなぜですか。
デビッドシュワルツ

6
答えが好きではないので...反対の証拠はありますか?Kinokijufには実際にいくつかの証拠があります。Windows7とVistaには適用されませんが、ソースは提供されないと言います。 。これをテストするには、プロセスエクスプローラーが唯一の方法です。
スーパーシリアル

5
システムリソースの使用量の削減は些細なことであることに注意してください。この例では、アプリケーションを最小化すると、ワーキングセットは約1.2%しか削減されません。
bgvaughan

5
このコメントスレッドにWin32開発者がいないことに注意してください。最小化されたアプリケーションをスキップする多くのWin32イベントがあります。顕著なメモリ節約がなくても、CPU使用量は確実に節約されます。
surfasb

27

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

タスクマネージャに表示されるワーキングセットのサイズは、アプリケーションが消費する実際のメモリ量ではありません。特定の時点でどれだけ使用できるかという上限です。

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


私は投票の答えを本当に嫌いますが、これは間違っています... 10分前に私に尋ねたら、あなたは正しいと思っていただろう。
スーパーシリアル

3
少なくとも私にとっては問題のある行であり、ダウンボートが立っている理由は次のとおりです。質問は明示的に「彼らは最大化したままにするよりも少ないメモリとCPUを使用しますか」と答えます。少なくともMSによれば(そしてMSが書いたのでここでMSを信頼します)、そうです。彼は、アプリケーションがより少ないリソースを使用するかどうかを最小限に抑えながら、アプリケーションのパフォーマンスについては何も尋ねません。
スーパーシリアル

14
@KyleそのKB記事は5年前です。最新のメモリ管理スキームには適用されません。(kinokijufの答えに対する私のコメントを見ると、そもそもそれが悪い考えだった理由がわかります。ページの使用の最新性を追跡できないオペレーティングシステムを除きます。)
David Schwartz

1
脚注には、NT4、2000、およびXPに対応していると記載されています。それ以来、何も変わっていないと思う。
kinokijuf

4
また、Vistaマシンで(Process Explorerを使用して)ワーキングセットがまだドロップしていることを確認できます。
kinokijuf

12

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

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

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


4

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

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

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

これは、アプリケーションを最小化するときに、よりグラフィカルなアプリケーションを表示し、代わりにレンダリングしない限り、余分なグラフィック作業負荷によりCPU負荷が増加する可能性があるためです。

ここで説明しているすべての変更は、非常に低スペックのマシンを使用しない限り、おそらく無視できる程度のものです。


-1、関連性がない場合。比較のために、常にセテリスパリバス
リーライアン

2
明確にされ、両方の可能性をカバーするとき、仮定が悪いことであることに気づかなかった。
iTom

特定の仮定は無関係であるため、明確にされても役に立たない。最小化によってプログラムが終了するような方法でプログラムが記述されている場合、それは明らかにコンピューターが使用するリソースがはるかに少なくなることです。その仮定は、議論にはまったく役に立たない。
ライライアン

1

まれに。最小化されたときを認識する対話型プログラムの場合、はい、使用するCPUパワーが少なくなります。Microsoft Wordのようなプログラムの場合、CPU使用率が低下することはありません。

グラフィックを多用するアプリケーション(例:World of WarcraftまたはCall of Duty 3)では、GPU(Graphics Processing Unit)の使用が大幅に減少します。


対話型プログラムは、応答するキーボード/マウスウィンドウメッセージがないため、CPU使用量が少なくなるために「最小化されたときを認識する」必要はありません。
Random832

@ Random832あなたが完全に何を意味するのかわかりませんが、フォーカスを失うと一時停止するプログラムの種類(ゲームなど)を伝えるつもりでした。これらのゲームは、一般に最小化するとCPUの消費電力が少なくなります。
wizlog


0

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


それは古典的なプログラムでも同様ですか?実際にソフトウェアを閉じることができないため、メトロに必要です
Journeyman Geek

はい、少なくともそれはベータ版で見たものです。(使用例は、インターネットエクスプローラ、非メトロバージョンた)
soandos

非常に初期のベータ版から繰り越されるかどうかを推測するのではなく、Win8がリリースされるまで待つことをお勧めします。
ジェフアトウッド

メトロアプリのサスペンション部分は消えないので、残りのサスペンションシステムが所定の位置にとどまることに、私は比較的自信を持っています。自動ではありませんが、現在のwin7システムの一部でもあります。
soandos
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.