この記事の概要を簡単まとめ!
- 未だ議論されている仮想メモリ
- 仮想メモリについて調べる人が非常に多い
- ゲームでも仮想メモリは必要なのか問題
- 仮想メモリをなし(0GB)でプレイしデータを収集
- 結果:基本なしでOK
- 感想:重いゲームでない限り16GBで問題ない
- 結論:完全にゲーム専用なら不要、同時に配信や録画などする場合は考慮すべきか
PC関係はいつもみんなの大好物である。最近はIntel VS AMD、或いはNVIDIA VS AMDの構図が展開されており、AMDがこれらに勝つかどうかで多くの人が見守っている。マルチスレッド・低価格だったAMDは、新作発表の度にIntelやNVIDIAの墓が建てられる程強くなった。シングルコアの性能も上がり、消費電力とスペックのバランスが極まっているので、AMDが弱いのは昔の話になった。
PC関係は何故みんな注目するか、その理由はゲームに使うからである。ただ、自作デスクトップは高い買い物になることは必然的であり、1円も無駄にしたくないと考えているためであろう。それとは別に、ソフトウェア面でも解決策を求めて情報を集めている人が多い。特に仮想メモリは、ゲームに必要なのかどうかで「最適解」を探しているようだ。そして私のブログの一番人気はなぜか仮想メモリである。これは以前書いたものである。
その記事は一般用途における仮想メモリ論を書いたもので、OSはWindows7、実装可能な最大のRAMが8GBの貧弱なラップトップであったため、その時の結論は「必要」とした。だが、Windows10が標準OS、ラップトップでさえ16GB以上のRAM実装が当たり前となり、デスクトップに限定すれば理論上RAMは無限となった今、果たして仮想メモリは必要なのだろうか?今回はゲームを主軸に、仮想メモリが必要かどうか、実験を基に考えることにする。
ひとっ飛びできる目次
RAMと仮想メモリ
はじめに:前回記事紹介と概要
仮想メモリの話をする前に、ほぼ1年前となる前回記事のリンクを貼っておく。この記事は、まだPCのスペックが低い頃に実験したものである。実験当時に使用していたのはHP EliteBook 8440pであり、法人モデルの安いやつである。RAM上限8GB、Windows7であり、お世辞にも使えるとは言い難いものであった。
面倒が嫌いな人のためにまとめておくと、仮想メモリをなしにした状態でしばらく使用していると、RAMが変更済みに占領され、これを開放するツールを使用しても反応がなく、なくなく再起動してRAMの初期化をしなければならない状況に陥ったのである。
当時立てた仮説が、変更済み領域の書き込み先が仮想メモリであるとする説である。仮想メモリを設定後にしばらく使用した状態でいても、変更済み領域が残ることはなかった。ただ、OSの専門家でもなければ開発者でもない以上、この仮説が真である保証はない。だが確実に、変更済み領域の書き込みには仮想メモリが何らかの関係があることはわかったのだった。その後の調べでは、仮想メモリ設定が必須のアプリケーションが原因ではないかと考えられる説であるが、真相は不明である。
未だ議論されている仮想メモリ
さて、前回記事の紹介が終わったところで、話を始める。RAM、仮想メモリについては、その言葉自体は何度か聞いたことはあるだろう。解説自体は前記事で行っているのでここでは簡単に済ませる。RAMは主記憶装置であり、PCの動作に必須な重要パーツの1つである。HDD/SSDにある全てのプログラムとデータはここに呼び出され、RAM―CPU間でこれらがやり取りされる。また、電源を切るとRAM上のデータは消滅する。この性質から揮発性メモリとも呼ばれる。
仮想メモリは「バーチャルメモリ」「ページファイル」とも呼ばれ、新しいプログラムを実行する際、RAM容量が不足する場合にPC側(OS)が使用されていないデータやプログラムをHDD/SSD上に退避するシステムである。再度使用するときにはHDD/SSDから読み込まれて何事もなかったように動作する。RAMを机とするなら、仮想メモリは本棚と言える。
この仮想メモリ、昔からずっと議論されていることである。仮想メモリは必要か不要か、必要ならどれくらいなのか、設定方法は、注意すべきことは…と、様々な観点から調査され、議論されている。そして必要派と不要派に明確に分かれ、インターネット上でそれぞれの主張となる情報を見ることができる状態である。もっともこのせいで両方の情報が溢れることになり、検索する人が混乱してしまうことになる。少々、本末転倒である。
仮想メモリについて調べる人は非常に多い
それでもネットは情報の海である。したがって、根気よく探していくと参考になる情報の1つや2つは手に入れることができる。そして私のブログに辿り着いたとき、その時にユーザーが入力した検索キーワードを見ることができる。
仮想メモリに関連するページは執筆時点で1つしかないのだが、それが私のブログで一番見られているページである。そして検索キーワードには当然、「仮想メモリ」がある。またネット検索は通常、複数のキーワードを半角空白を区切りとしてand検索する。その結果には必要、不要、設定、無効、最適値など様々だが、特に多いのが「ゲーム」がプラスされたキーワードである。
このことから、仮想メモリについて調べて情報を得たいという人は大勢いて、その中でもゲームの場合について知りたい人が多いことがわかる。主に自作デスクトップPCを製作している人が、このような検索を行っているものであると考えられる。
ゲームでも仮想メモリは必要なのか問題
PC関連の技術は日々進歩している。その結果、安価なPCでもRAMを8GB以上搭載することが標準化され、デスクトップなら金さえあれば32, 64GBすら楽勝である。ただ一般用途なら16GBあれば十分、ゲームであっても正直64GB以上はオーバースペックである。寧ろRAMよりもCPUとGPUが重要なため、そこまでする必要性はないだろう。RAMが必要なのは、仮想マシンの場合だ。
そこで1つの問題が浮上する。ゲーミングPCまたはゲーム用途にチューンされたデスクトップPCでは、基本的に十分なRAM容量が実装される。そのため、仮想メモリを実装する必要はないとされるところまで来ている。だが検索キーワードに「ゲーム」を入れていることから、仮想メモリが必要かどうかを知りたいはずだ。だが、この問題に関しては「明確な答え」は存在せず、同時に正解もないのである。どれが正解かは、個人の使い方や考えに依存するためである。
そこで、私が現在所有しているゲーム用デスクトップPCを実験台として、仮想メモリをなしにしてゲームを起動し、果たして何の問題もなくプレイすることができるか検証し、その結果をここに掲載する。なお、これから掲載する結果は私の環境の場合であり、決して同じようにはならないということを前提に見てもらいたい。
仮想メモリなしでのゲームプレイ実験
さて、ここからは仮想メモリなしのゲームプレイ実験の準備から結果考察までを行う。今回はWindowns10になってはじめての設定であるため、仮想メモリの設定方法についても、Windows7とほぼ変わらないが、新しい画像と共に再度掲載しておく。
実験に使用するPCのスペック
はじめに、私が所有するゲーム用デスクトップPCについて、そのスペックを記述しておく。なお、デスクトップ自体は約20ヶ月前に一式を揃えて建てているが、実験時点で一部のパーツは換装している。
- Mainboard: ASRock H370 Pro4 2019.3
- CPU: i5-9400F (6C/6T) 2.90GHz (TB 4.10GHz) 2019.11
- GPU: MSI GTX 1060 ARMOR 6GB OCV1 2019.1 used
- RAM: CFD/panram DDR4-2666 W4U2666PS-8GC19 2019.10
- SSD: Crucial M550 256GB 2.5 SATA3 2019.2 used
- HDD: WD Blue WD5000AAKX 500GB SATA3 2019.11 used
- POWER: CFD/Expert Oriented KRPW-N600W/85+ 2019.2
- CASE: Corsair 100R Silent 2019.3
実験時のPC構成は上記の通りである。うち、仮想メモリに影響があるのはRAM, CPU, GPU, ストレージ群である。それ以外は影響は殆どない。なお、私の場合はSSDの消耗を抑えるため、通常はHDD(D:)に仮想メモリを設定している。
前提:仮想メモリの設定
まず前提として、仮想メモリの設定を行う。設定方法に関しては前記事で紹介しているが、Windwos10で行うのは初めてであるのと、前回記事を省略してこのまま読み進めていることを前提として書くことにする。
- コントロールパネル/システムとプロパティ/システム を開く
- スタートにある設定からコントロールパネルには入れない。現在一番楽な方法はエクスプローラーを開き、カーソルを左欄内のPCに合わせて右クリック→プロパティ(R)で一気に開ける。
- 左側、システムの詳細設定(ユーザーアカウント制御)を開く。タイトルが「システムのプロパティ」で新しいウィンドウが開かれる
- 「システムのプロパティ」ウィンドウは、最初から詳細設定のタブが選択されている。パフォーマンス枠内の設定(S)ボタンをクリックして開く
- 「パフォーマンス オプション」ウィンドウが開かれる。詳細設定タブに移動し、下の仮想メモリ枠内の変更(C)をクリックして開く
- 仮想メモリの設定ウィンドウが開かれる。仮想メモリの設定の仕方は以下の通りである
- はじめに、「すべてのドライブのページング ファイルのサイズを自動的に管理する(A)」のチェックを外す。
- 仮想メモリの設定をするドライブを選択する。原則としてシステムドライブ以外に設定する。単一のディスクしかない場合この限りではない。
- 仮想メモリのサイズを設定する。
- カスタム サイズ(C)は初期サイズ、最大サイズを自分で設定する。最小値は16MB。もっとも16MBでは設定する意味はない。
- システム管理サイズ(Y)はOSが自動で設定する。自動の場合、一般的にはシステムドライブに実装RAMの1.5倍になる1)この仕様はWindows XPの頃のものである。例えばRAMが1024MBであれば、仮想メモリを含めて1.5倍の1536MBにするので、仮想メモリは512MBがセットされる。ようにセットされるが、現在は使用時間に応じて自動で判別し、サイズを調整するようになっている。
- ページング ファイルなし(N)は、仮想メモリを無効にする。仮想メモリを使用しない場合はこれにチェックする。
- いずれの場合でも、右の設定(S)を押さないと反映されないので注意。
- 設定を完了したらOK, 中止する場合はキャンセルで完了。
- 仮想メモリを増設する設定をした場合、再起動要求される。作業中の場合は全て保存してから再起動を行う。
ここでは、仮想メモリを設定する場合と無効にする場合の両方を含めて書いている。どちらをする場合でも手順は変わらない。画像は一旦仮想メモリを無効化するため、ページング ファイルなし(N)を実行したものである。
なお、これは余談であるが、仮想メモリをHDDに設定する場合に限り、初期サイズと最大サイズを一致させておくということがよく行われる。これは仮想メモリの断片化を防ぐ目的で行われる。ただ現在はSSDが主流であり、システムドライブ以外もSSDということは多々ある。ランダムアクセス可能なSSDでは断片化の影響を受けないので、その場合は初期サイズと最大サイズを一致させなくても問題はない。
実験:仮想メモリなしでPCゲームをプレイする
ここからは実際にゲームをプレイして、果たして影響があるかどうかを調査する。今回検証に使用するゲームはみんな大好きバーコードハゲHITMAN2、NieR:Automata、MODを入れまくったMinecraftの3つである。これらを起動し、しばらくプレイした結果と終了時のRAMの動きをタスクマネージャーとリソースモニターで確認する。ただし、私の予想としては、映像系はGPUに依存するため、RAMは読み込まれるデータが多いか少ないかに影響すると考えている。
実験1:HITMAN2 – 8.5GB程度で収まる
最初の実験はHITMAN2である。HITMAN2の推奨スペックはRAMとGPUのみ考えると、RAMが16GB、GPUがGTX 1070/RX Vega 56となっている。このとき、RAMのクロックは考慮しないものであろう。一昔前のデスクトップでは、DDR3までということも多いためである。正直なところ、2666以上のクロックはオーバースペックで必要ないと思う。
HITMAN2において、ロード量が多いステージを探した。なるべくモブが多く、アイテムとオブジェクトが多いステージである。マップの広さはここではあまり考慮しない。広いだけでオブジェクトや人が少ないと、あまりRAMを消費しないと考えたためである。ただ、広い=読み込み量が多いというのも確かである。そこであがったのが、マイアミとムンバイである。この2ステージは、いずれも人が多くてそれなりに広く、アイテムとオブジェクトも多いためである。
そこで、それぞれのステージを1時間程度プレイし、その時のRAMの状態をプレイ中とゲーム終了後でどうなるかを観察し、そのときのスクリーンショットを掲載する。ちなみに、それぞれは別撮りしている。実験の時系列としては、マイアミ→ムンバイの順である。
結果は画像を見てもらった方が早い。プレイ中は全体で8.0~8.5GBが使用されている。これはWindows10の必須サービスやSteamクライアントなどバックグラウンドで起動及び動作するものも含まれる。終了時のRAMの状態から、HITMAN2で4.0GB使用されることがわかる。また、ゲーム終了時はHITMAN2で使用されていたRAMのデータは殆ど変更済みにならず、すぐに解放されるようになっている。
マイアミプレイ中はRAMに特に何も起きず、終了まで変更済みが発生して圧迫するという事態は起きなかった。ただ、ムンバイプレイ中に変更済み領域がいきなり2.0GB発生したのである。これは何が原因で発生したかは不明であるが、ただ全体としては8.3GBであったため、ゲーム内のセーブデータ関係か、Steam関係であると考えられる。Windowsのシステム関係とは考えにくい。ただ、この変更済み領域もHITMAN2を終了すると一部が書き込まれて解放されることも確認したため、そのまま変更済み領域に埋め尽くされるということはないようだ。
したがって、HITMAN2での検証結果は、仮想メモリを設定していなくとも問題ないということが言える。一部変更済み領域が発生することがあるが、16GB以上のRAMを実装していれば、少なくともそれに埋め尽くされる可能性は低いので心配することはない。
実験2:NieR:Automata – 6.3GB そこまで使用していない
次は9Sくんが可愛いことでお馴染みのNieR:Automataである。ただ、世界観的に人間は存在せず、構造物もその特性上廃墟しかなく、機械生命体による建造物もまた無機質であり色の描写もグレースケール寄りになるので、使用するRAMも多くはないと考えられる。分類はARPGなので、寧ろGPUへの負担の方が大きい。ちなみに、推奨スペックはRAMが8GB, GPUがGTX 980/R9 380X以上となっている。
さて、実のところこのゲームは自由に行動できるタイミングが意外と限られていて、できることも限られている。また負荷がかかりやすいであろうムービーなども、そこに行く過程が面倒なので負荷をかけることがなかなかできない。私は面倒が嫌いなんだ。なので適当に1時間程度遊んで、HITMAN2と同様にどうなるかを観察し、そのときのスクリーンショットを掲載する。
こちらも結果は画像を見てもらった方が早い。プレイ中は全体で6.3GBであり、8GBでも余裕がある。ARPGの特性上、CPUとGPUが全てなのだろう。なお、バックグラウンドで起動している分のRAMは変わらない。おおよそ3.5GBである。3.5GBと仮定すれば、NieR:Automataは約3.0GB使用することがわかる。
ゲームプレイ中に特別何か起きることはなく、強いて言えばGPUが少し弱いので画面の動きが少し遅くなる程度であった。それに関しては完全にGPUの問題であるので、RAMは無関係である。また、私の場合では変更済み領域が発生することは殆どなかった。もっとも、発生しても影響がない程度に収まるであろう。でなければ推奨値8GBは嘘になってしまう。
したがって、NieR:Automataでの検証結果も、仮想メモリを設定していなくても問題ないと結論付けられる。また、この例から推奨値以上のRAMを実装していれば、(他に何もアプリケーションを起動していなければ)RAM不足に陥る可能性は低いことも言える。仮想メモリなしでも、ここまで順調である。
実験3:MODを入れまくったMinecraft – MODやその数による
最後にMODを入れまくったMinecraft(Java Edition)で実験する。ただし、Minecraftはプレイするバージョンと入れるMODに依存するところが大きいので、あまり参考にはならないかもしれない。ちなみに、Minecraftの公式ヘルプセンターによれば、推奨RAMは8GBとなっている。おそらく普通にプレイする分にはこれで足りるものであると考えられる。MODを利用する場合、場合によってはそれ以上であろう。
実験したバージョンは1.7.10で、MOD数は65(依存関係起動用含む)、総計117MBである。これは1.7.10で開発が進んでいたMetroid Cubed 3をしたいがためのバージョン選択である。これも先の2実験と同様、1時間程度遊んで、その時のスクリーンショットを掲載する。
これも結果は画像の方が早い。MODを入れれば重くなるのでRAM使用量が増えると考えると思っていた私が甘かった。プレイ時の6.5GBと終了時の4.2GBから、Minecraft自体は約2.0GBであると考えられる。これはMOD分も含んでいる。なので、MODのないバニラであれば、もう少し軽いであろう。
もっとも、Minecraftは少し無理をすればCPU内蔵グラフィックでもある程度プレイできてしまえるので、実際かなり軽いと考えられる。Metroid Cubed 3の動画を作成していた人物が初期に内蔵グラフィックでプレイしていたので、Minecraft自体RAMも少なくて済むように設計されている可能性が高い。ただし、これは憶測の域を出ない。
したがって、Minecraftの検証結果は、MODを入れていても特に何の問題もなくプレイでき、RAM使用量も少なかったので、これも仮想メモリを設定していなくても問題ないと結論付けられる。使用するMOD次第ではあるが、8GBを超える可能性は否定できないので、16GBあれば一安心であると考えられる。結局、ここまで仮想メモリは必要ないと言える。
余談:その他のエミュレータについて
エミュレータについては本筋から外れるため余談程度で済ませるが、検証のためにやってみたものの、RAMは埋め尽くされる程使用されなかったため、期待していた結果は得られなかった。そのため、全くスクリーンショットを撮っていない。
そのため、基本的にエミュレータに関してはRAMも仮想メモリも心配することはないということを書いておく。そもそもの話、エミュレータでRAMなんて気にする人はいないと思うが。
仮想メモリ実験を終えて
感想:重いゲームでない限り16GBで問題ない
ここまでの結果から、仮想メモリがなくてもゲームには全く影響がないことが判明した。殆どの場合、推奨されているRAMの容量に従っていれば、RAMの心配をすることなくゲームをすることが可能である。Steamで公開されているゲームは多くが16GBを推奨としており、その場合大抵8.0~9.0GBでRAMは落ち着くということが、他のゲームでも言えるであろう。
ちなみに、推奨RAMの半分が必要RAMになり、16GBの場合8.0GBが必要RAMになる。この場合は必然的にRAMが足りなくなるため仮想メモリは必須となるが、PCでゲームをする人の殆どは16GB以上を実装しているので、そんなことは稀である。そもそも8.0GBではゲームはできない。
なお、忘れてはいけないのがゲーム中でもOSは常に動いており、その分のRAMは絶対に解放されないということである。NieR:Automataの時に解説したが、これはおおよそ3.0~3.5GB程度である。ほぼ4GBは使えないとすれば、使用できるのは(実装RAM-4)GBとなる。その条件でRAMをやりくりしていくので、実装RAMが少ないことはデメリットでしかないのである。4GBのPCなんて使えたものじゃない。
結論:ゲーム専用なら不要、同時に配信や録画する場合は考慮
さて、かなり長くなってしまったが、結論を述べる。
結論:ゲーム専用なら仮想メモリの設定は不要
推測:同時に配信や録画を行う場合は必要な可能性あり
補足:実装RAMが8GBしかない場合仮想メモリを+8GB設定にする
これが実験の末に私が導き出した結論であり、おそらく多くの人にとっての求めていた答えになるであろうと考えている。また、仮想メモリが必要な場合についての1つの推測も生まれることになった。
今日、量産型YouTuber及び殆どが低質で同じことしかしないクッソ面白くないVTuberが多数存在するわけで、当然ながら配信や録画を行うわけである。それを同一のPCで行う場合には、仮想メモリは必要になるのではないか、という推測だ。
録画か配信を行う場合、それに適したソフトウェアも起動し稼働させる必要がある。その場合、多くは両方ができるOBS Studioが使われる。私は面倒が嫌いなのでそれについて今更実験するつもりはないが、仮想メモリがない場合に何らかの問題が発生するか、あるいは何も発生しないのか。このあたりは専門外なので各自で確認してほしい。そもそもの話、今ではPCを2台以上持つことは当たり前のことであるので、キャプチャーボードを利用して別のPCに出力して配信や録画した方が安全である。そうなればやはり、仮想メモリは不要である。
それはともかくとして、いい加減仮想メモリが必要なのか不要なのかはっきりさせたいと、これを読んでいる人は思っていることであろう。私の実験結果からは、ゲーム専用で他のアプリケーションを起動しないのであれば、仮想メモリはなしにしてOKである。ただ、どうしても心配だというのであれば、RAMを32GBにしておけばいい。そうすれば少なくとも、RAM不足にはならない。もっとも、資金不足にはなるかもしれないが、快適さと資金はトレードオフである。あとは、自分のやりたいゲームで大丈夫かどうか、自分で試してみるといい。
もう長く語りすぎてしまったのでここまでにする。
以上、ゲームと仮想メモリ実験~ゲームには必要ない!~であった。それでは、次回の記事で会おう。
リンクス岐部(LINKS-KIBE) at 16:30 Nov. 8th, 2020
スポンサーリンク
脚注
本文へ1 | この仕様はWindows XPの頃のものである。例えばRAMが1024MBであれば、仮想メモリを含めて1.5倍の1536MBにするので、仮想メモリは512MBがセットされる。 |
---|