仮想メモリって何
仮想メモリとは、語弊があるのを承知で一言で言うと「メインRAM(メモリ)に入り切らない分を、ストレージで肩代わりしてもらう技術」です。メインRAMは、ぶっとびの超高速ではあるのですが容量が少なく、電源を切ると中身が消えるという泣き所があります。
それをカバーするのが仮想メモリなのですが、こっちはこっちで、ストレージの容量がその分消費されるのと、速度が(たとえGen.4x4の超高速SSDであっても)メインRAMとは桁違いに遅く、仮想メモリを使う状況だと、確実にPCのパフォーマンスが格段に落ちてしまう事にあります。
そういう一般論はともかく、モバイルPCは、まだまだ潤沢なストレージを搭載する気のないモデルも多く、酷いのになると64GBで済ませようとするし、Surface Go2シリーズもメインは128GBと余裕はなく、とても高価なSurface Pro 9ですらも256GBです(超高価なプレミアムモデルは1TBだけど買ってられん)。
仮想メモリの様子を見て、必要なら初期化するのもアリかと思われます。
仮想メモリの状況を見る「VMEM」コマンド
また私の独学の勝手コマンドで恐縮ですが、VMEMコマンドで仮想メモリがどんくらいストレージを消費してるのか?をすぐに見る事が出来ます。powerShellは管理者モードで起動して、もしスクリプトファイルにするなら、文字コードはUTF8やShift JISではなく、UTF8 with BOMにすると、Windows PowerShellと、マルチプラットホームのpowerShellの両方で文字コードが共有できます。
#仮想メモリを表示
function VMEM() {
WRITE-HOST "---仮想メモリ状況---"
WRITE-HOST "〇ストレージ使用容量"
$VMEM_STORAGE = GET-CHILDITEM "C:\" -FORCE | ?{$_.Name -match "pagefile.sys|hiberfil.sys|swapfile.sys"}
$VMEM_STORAGE | %{$_.Name + "(MB) " + ($_.Length/[Math]::Pow(1024,2)).ToString(".000")}
WRITE-HOST "〇設定情報"
$VMEM_INFO=Get-CimInstance -Class Win32_PageFileSetting | ?{$_.Name -eq 'C:\pagefile.sys'}
$VMEM_INFO | %{"初期(MB)="+($_.InitialSize).ToString() + " 最大(MB)="+($_.MaximumSize).ToString()}
}
swapfile.sysが膨らんでいると、メインRAMでは足りない分を肩代わりして膨張したな、という目安になります。
仮想メモリの初期化をする方法は...
仮想メモリですが、「swapfile.sys」が膨らんでしまって手に負えないよ、という時にどうするべきか。Windows 10まではpowerShellからリセット可能でしたが、同じものはWindows 11では動かなくなっていました。
現状は、いったん手動で以下の方法ですかね。
(1)スタートボタンを右クリックし、[設定]をクリックします。
(2)[システム] → [バージョン情報] を選択します。
(3)関連リンクにある [システムの詳細設定] をクリックします。
(4)パフォーマンスの [設定] をクリックします。
(5)[詳細設定] タブを選択し、仮想メモリの [変更] をクリックします。
(6)[すべてのドライブのページングファイルのサイズを自動的に管理する] のチェックを外します。
(7)仮想メモリを設定したいドライブを選択し、[カスタムサイズ] を選択します。
(8)初期サイズと最大サイズを入力します。一般的には、実装メモリ (RAM)の約3倍に設定することが推奨されています。
(9)[設定] をクリックし、[OK] をクリックします。
(10)コンピューターを再起動します。