すべてのメモリが通常使用されているわけではない場合、RAMの多いコンピューターは潜在的に高速ですか?


85

16 GBのメモリを搭載したコンピューターがあるとします。私のコンピューターが通常約4 GBしか使用せず、8 GBに達しない場合、8 GBの(同じタイプの)メモリーしかないコンピューターよりも高速ですか?16 GBの残りの半分を削除して、8 GBだけを残して、コンピューターを同等に高速に実行できますか?


17
この質問の難しさの一部は、仮想メモリとメモリマップファイルを備えた最新のオペレーティングシステムでは、「使用中」を定義するのが難しいことです。たとえば、実行中のプログラムのコード(「テキスト」)セグメントは「使用」または「キャッシュ」ですか?
R ...

5
オペレーティングシステムによってメモリの管理方法は異なります。質問にオペレーティングシステムが示されていません。「使用する」という用語は、さまざまなことを意味する場合もあります。悪い質問、さらに悪い答えが選ばれました。
ジェイソン14

メモリアドレスドライバの負荷が少ないため、メモリが小さい方が高速になる可能性があります。ただし、実際には、これを考慮してクロック速度が調整されているとは思わないので、違いはありません。(これは、「余分な」RAMが塊のようにただ座っているだけで、どういうわけか使用できないことを想定しています。)
ダニエルRヒックス14

3
この質問には、「使用中」の定義が本当に必要です。キャッシュを要求するすべての回答(現在受け入れられているとおり)、メモリの使用について通知します。これはおそらくより便利な定義ですが、メモリのさまざまな使用を分離することが役立つでしょう。私たちは完全に未使用のメモリが...助けている場合は議論したくない場合がありますと仮定
Nanne

また、追加のRAMスティックを使用すると、両方に同時にアクセスできるため、高速化できることに注意してください。
タイゾイド14

回答:


112

はい、オペレーティングシステムは追加のRAMをディスクキャッシュとして使用できるため、ディスク上のデータへのアクセスが高速化されます。

ただし、RAMを追加しても、CPUバウンドの計算(ディスクI / Oをあまり必要としない)は速くなりません。


31
他の目的に使用されていないRAM。(ディスク容量よりも多くのRAMがある場合を
除き

30
Linuxはそうです。Mac OSが同じことをしなかったら、私は驚くでしょう。馬鹿げたことはありません。
ワイザード14

9
「表示しない」どこですか?freeLinuxシステムで実行し、「キャッシュ済み」列を確認します。一部の高レベルアプリケーション(GNOMEシステムモニターなど)は、キャッシュが「使用中」として報告されません。これは、そのRAMが他のプログラムで使用できるためです。カーネルはいつでもキャッシュを破棄できます。
ワイザード14

4
@PTwr -その場合にはOSがそれらのファイルをキャッシュする必要があり、多くがスピードアップすることを与えるべきではない- RAMディスクは、あなたが書いている場合には役立つかもしれない-しかし、それは価値があるかどうかを確認するために速度差を計測
user151019


59

すべてのオペレーティングシステムはメモリを別々に管理し、何も与えられていないため、Windows 7のコンテキストで回答します。

以下は、24GBのRAMを搭載したコンピューターの例です。現在、「使用中」メモリとして割り当てられているのは7 GBだけですが、「スタンバイ」メモリとして別の10 GBが割り当てられており、再読み込みされる場合と読み込まれない場合があります。読み取られると、コンピューターが「高速」になります。現時点では、「空き」メモリはまったく使用されていません。

リソースモニター

  • 「使用可能」は、スタンバイおよび空きメモリです。つまり、現在必要ではないすべてのメモリ。
  • 「キャッシュ」はスタンバイおよび変更されたメモリです。キャッシュに使用されるすべてのメモリ。変更された部分は、スタンバイになる前にディスクへの書き込みを待機している部分です。
  • 「合計」メモリは、ハードウェア予約を除くすべてのメモリです。

Windows 7のメモリ使用量について詳しく知りたい場合は、TechRepublicにすばらしい記事があります。


このコンピューターが、この負荷の下で、さらに8 GBを追加するとどうなりますか?私は「何もない」と疑っていますが、負荷が大きいユーザーやアップタイムが長いユーザーほど多くのキャッシュがあると思います。

3
@JonofAllTrades同意します。リンクした記事で言及されていないことの1つは、SuperFetch(Windows 7の既定のサービス)です。SuperFetch は、アクセスされるに物事をメモリロードします。使用パターンをファイルに記録し、完全に最適化するために数日/数回再起動します。
ジェイソン14

これはLinuxでも起こりますか?
キャスパー

16

オペレーティングシステムが8GBのうち4GBしか使用していない場合、16GBのうち4GBを使用しているマシンと同じように動作します。

使用されていないラムは、マシンのパフォーマンスに影響を与えません。

ただし、OSが使用可能なRAMのほぼすべてを使用するのが理想的な状況です。OSとアプリケーションは必要なものを要求し、残りのRAMはキャッシュとして使用する必要があります-アプリケーションがさらにRAMを必要とする場合、スワッピングを避けるために、おそらく空き部分があります。キャッシュは引き続き「使用済み」としてカウントされ、メモリのないツールで使用されているように表示されます。

キャッシュの作成には時間がかかるため、起動時に表示されません。しばらくしてマシンがまだ4GBを超えて使用していない場合は、おそらく4GBを超えるアドレスに対応できない32ビットOSを実行している可能性があります(通常)。


4
ディスクキャッシュを「使用済み」RAMと見なすかどうかによって異なります。freeたとえば、Linux プログラムは両方の方法で報告します。
ワイザード14

guiがユーザーに表すものと実際の状況は異なる場合があると思います。キャッシュに使用されるRAMは、ユーザーランドツールがユーザーにその事実を隠すかどうかに関係なく使用されます。
ポール14

「しばらくしてマシンがまだ4GBを超えて使用していない場合...」 ->繰り返しますが、ディスクキャッシュは優れていますが、ディスクからキャッシュできるものがたくさんある場合、空きRAMがいっぱいになることはありません- - 実際に使用したものだけをキャッシュし、現在はそうではありません。通常のアクティビティに大量のPhotoshopなどが含まれているか、コンピューターが大量のビジーなサーバーでない限り、おそらく数GB以上になりません静的ファイル。
goldilocks 14

@goldilocks明らかに「しばらくして」はあいまいですが、「Windowsとアプリが4GBを超える十分なデータをロードする原因となった期間の後」を意味するつもりです。私の使用法はかなり日常的であり、日常的にこれを超えています。ポイントは、この制限に達した場合、より多くのキャッシュの必要性の欠如ではなく、アドレス指定の制約かもしれないということです。
ポール14

9

方程式のもう1つの部分は、メモリスティックの構成方法です。特に、最新のマザーボードはデュアルチャネルメモリをサポートしているため、マザーボードとメモリ間の帯域幅を2倍にできます。メモリをペアリングし、各ペアのうち1つを取り出した場合、これを失ったため、多くのメモリ転送を行うときのメモリアクセスが減少し、操作に時間がかかります。(反対に、たまたま8ギグの高速メモリと8ギグの低速メモリを組み合わせて使用​​し、8ギグのみを使用していた場合、8ギグの低速を取り出して高速を修復すると、デュアルチャネルを取得できるため、高速で実行できますしかし、最も遅いメモリに減速する必要はありません)

しかし、一般的に、他の回答で言及されているキャッシングは、全体的なパフォーマンスに大きく貢献します。


3

16GBのメモリの半分を削除すると、コンピューターの速度が低下します。

これは、8GB近くのメモリを使用しない場合でも保持されます。

それのソフトウェア側は他の答えでカバーされており、ディスクではなくRAMを使用することを選択するOSに要約されます。

ただし、使用可能なRAMの量を半分にすると、ハードウェア駆動によるパフォーマンスの低下が発生する場合があります。その理由は、RAMバスがマルチチャネルアーキテクチャを使用しているためです。つまり、コンピューターは複数のRAMモジュール間で同時にデータを転送できます。

おそらくあなたのコンピューターはデュアルチャンネルです。この場合、パフォーマンスに影響を与えるハードウェアを必要とせずに、4つの4GB RAMモジュールのうち2つを削除できます。ただし、2つの8GB RAMモジュールのうち1つを削除すると、パフォーマンスに影響します。

クアッドチャネルRAMアーキテクチャを使用している場合は、RAMが4GBモジュールであってもパフォーマンスが低下します。


2

メモリが最大限に使用された場合、または99%の場合、ページファイルがハードディスク上にあるため、速度が低下します。ハードディスクは、バス速度に応じてCPUがRAMに直接アクセスするRAMの速度に近づくことさえできません。

Windowsは、他のアプリケーションをカウントしないラムのアイドル状態で約3〜4 GBを使用します。私は何年もの間16 GBを実行してきましたが、実際には8 GBを超える必要はありませんでした。現実的には、平均的なPCユーザーは、ゲームに4〜6 GB以上を使用することはありません。ムービーを圧縮したり、RAMを多用する何かを行うのが通常マルチメディアである場合、12 GBに近づくのは一度だけで、マルチコアCPUが8GB以上を必要とする唯一の方法です。そして、はい、それは同じくらい速く動きます。IMO。

1日の稼働時間後のアイドル: ここに画像の説明を入力してください ここに画像の説明を入力してください

2日間のアップタイム後のアイドル: ここに画像の説明を入力してください ここに画像の説明を入力してください

RAMが多いほど、使用するRAMが多くなります。

ここに画像の説明を入力してください

特定のプロセスを高速化するためにRAMを使用するWindows 7の例は次のとおりです。

ここに画像の説明を入力してください

キャッシュを高速化するためにRAMを最大化するChkdskは、パフォーマンスとディスクチェック時間を高速化します。


1
Windows 7?たくさんのものがあっても、2Gを超えることはほとんどありません。
サイモンクアン14

Windows 7が使用するRAMが多ければ多いほど...開いているプログラムが原因で時間外に変動し、サービスおよびアプリケーションがメモリを解放するまで現在開いているため、実際の質問に関しては変動します。8GBは、コンピューターの使用目的に応じて、はい、いいえで16GBになります。通常の環境では、ゲームやWebブラウジングなどの一般的な用途の場合、8GBを超える容量は必要なく、実際のパフォーマンスの低下はありません。
MORBiD 14

2

実際には、答えは述べられているように質問に対して「NO」になる可能性が高くなります。Q.は「(使用量)が8 GBに達することは決してない」と述べ、「同じ種類のメモリ」と述べているため、速度(ディスクバッファリング)に影響を与える可能性が最も高い要因は影響を受けません。一般的な実用例は、ハードディスク全体をバッファするのに十分なメモリを備えたデータベースサーバーです。たとえば、4GBのファイルと2GBのプロセス/システム割り当てメモリでは、8GBを超えるメモリの恩恵は受けません。

例外:

メモリを増やすとハイバネーションが遅くなる可能性があります-32GBのメモリとSSDディスクを搭載したシステムでは、32GB全体をハイバネーションで保存するため、コールドブートはハイバネーションから覚醒するよりもはるかに高速ですが、コールドブートでは読み込みにはるかに少ない時間が必要です。メモリを削減すると、システムが高速化されます。

より多くのハードディスクにアクセスし、ほとんどの人がバッファリングのために残されたメモリよりも多くのディスク使用量を持っている場合、それはより速くなります。また、多くのO / Sは使用量の一部のみを「使用量」として報告し、残りは「使用量」ではなくバッファリングとしてカウントされます。(Linuxは、バッファリングの包括的および排他的使用を報告します)。

メモリチャネルはパフォーマンスに影響します。[メモリを削除すると使用中のメモリチャネルの数が減る場合、Foonが正しく指摘しているためシステムの速度が低下します]

[編集:] David Schwartzは、メモリを下げると、Windowsでのプライベートで変更可能なメモリマッピングの制限が小さくなるとコメントしました。Windowsは、これらの予約の合計をメモリとスワップの合計に制限しているため、「空きメモリ」が報告されていても、このリソースを使い果たすことができます(ページにアクセスするまで実際のメモリ/スワップは割り当てられないため、メモリ使用量としてカウントされます)。Linuxの動作は異なります。各プロセスはメモリとスワップサイズの合計まで割り当てることができ、すべてのプロセスの合計はメモリとスワップの合計を超えることができます。


1
基本的には、「いいえ」が正しい答えであると断言しますが、理由は言わないでください。
デビッドシュワルツ14

これは、受け入れられた回答への応答でした-直接コメントする担当者がいません-混乱して申し訳ありません。明確にするために、明らかでない場合は、実際に読み書きされるのと同じくらいの量のメモリをハードディスクのバッファリングに使用します-ディスクの使用量があまりない場合、またはアクセスされない場合、余分なメモリは使用しません」違いを生む。
iheggie

1
データベースサーバーの例は、メモリを追加してもほとんど違いがない場合の例です。使用中のディスクはすべてバッファリングされます。
iheggie

RAMが増えると、それ以外の場合は拒否される割り当てをOSが許可できるバッキングストアが増えるという事実はどうでしょうか。
デビッドシュワルツ14

私のDBサーバーの例では、空きメモリが不足しているために割り当てを拒否することはないため、まったく違いはありません。O / Sはどの割り当てを拒否しますか。メモリ内のすべてのプロセスb。ディスク全体がすでにメモリにバッファリングされている、c。空きメモリがあり、d。他の制限を超えていませんでした(たとえば、最大プロセス/バッファー/アドレス可能なサイズ制限)。
iheggie 14

0

メモリの断片化は、余分なメモリがあるもう1つの理由です。8 GBのRAMがあり、80%を使用する傾向がある場合、特に現代のユースケース(ブラウザーのタブを開いたり閉じたりするなど、大量のメモリスワッピングを行う)で最終的にはかなりの断片化が発生します。

余分な8GBのRAMを追加すると、OSが使用可能なメモリの連続したスペースを見つける可能性が高くなります。つまり、パフォーマンスの低下を回避するために再起動の必要性が少なくなります。


私の理解では、メモリの断片化は、プロセスのメモリ空間内で発生する可能性があり、典型的な現代のシステムでは仮想的であり、システム全般には適用されません。物理メモリはページに分割され、プロセスの仮想メモリ空​​間に個別にマッピングされるため、断片化は意味のない概念になります。何か誤解した場合は修正してください。
トーマスパドロン-マッカーシー14

0

可能ですが、必ずしもそうではありません。とりわけ、RAMがコンピューターに許可することの1つは、アプリケーションが使用できないメモリを割り当てることを許可することです。システムにこれまでに発行したすべての割り当てが可能な限り多くのメモリを消費するのに十分なバッキングストア(RAMを含む)がない場合、オペレーティングシステムはそれらの割り当てを拒否するか、オーバーコミットする必要があります。一部のオペレーティングシステムはオーバーコミットを行わず、ほとんどすべての最新のオペレーティングシステムが許可するオーバーコミットメントの量を制限しています。

そのため、使用されていないメモリは、RAMを必要とする可能性のある操作が失敗した場合に成功するようにすることで、パフォーマンスを向上させることができます。


-1

ラムを増やしてもコンピュータの速度は上がりません。ラムが少ないと、コンピューターの速度が低下します。

コンピュータには物理的な最大速度があり(これにはオーバークロックも含まれます)、それより速くなるものはありません。


3
Wyzardの答えに示されているように、「コンピューター」全体にはディスクアクセスが含まれます。RAMが増えるとキャッシュが増え、高速化されます。
私を削除してください

テラバイトのRAMを追加することで、コンピューターの物理的な速度制限を増やすことができるということですか?
Xtro 14

はい、ハードドライブを考慮します。
私を削除してください14

ところで、RAMが少なくてもコンピューターの速度が低下することはありません。L3キャッシュは、キャッシュミスが原因で何度もコンピューターの速度を低下させました。
私を削除してください14

2
あなたの答えはトートロジカルです。はい、CPUの「最大速度制限」はCPUの最大速度です。良いショー。ただし、実用的な観点からは、十分なRAMしか搭載されていないPCと比較して、過剰なRAMを搭載したPCは多少高速になります。
ジョー14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.