メモリの調整
Windows サービスの svchost プロセスを共有します: メモリ使用量は減りますが、1 つのクラッシュで複数のサービスが停止することがあり、タスク マネージャーでサービスごとの数値を表示できなくなります。
このセクションで変わること
Windows サービスの svchost プロセスを共有します: メモリ使用量は減りますが、1 つのクラッシュで複数のサービスが停止することがあり、タスク マネージャーでサービスごとの数値を表示できなくなります。
| 設定 | 内容 | レジストリのパス |
|---|---|---|
| サービス プロセスをまとめる (svchost) | SvcHostSplitThresholdInKB を引き上げ、多数の svchost.exe をまとめます: オーバーヘッドは減りますが、1 つのサービスがクラッシュすると同じグループに影響することがあります | HKLM\SYSTEM\CurrentControlSet\Control\SvcHostSplitThresholdInKB |
適用方法
- w0a を開きます
- 左のメニューでレジストリ調整ページを開きます
- このセクションを見つけ、適用したい項目の適用を押します
項目ごとにボタンがあるため、セクション全体を適用する必要はありません。すべてを適用したいときは、ページ上部のすべて適用を使います。
元に戻す方法
方法は 2 つあり、どちらも機能します:
- バックアップと復元: 変更を適用する前に書き込まれた復元ポイントに戻します。その時点より後に適用したものは、後の復元ポイントも含めてすべて元に戻ります。開始する前に、確認画面がまさにそのことを伝えます。
- Fix ページ: 症状で検索でき、条件を問わず Windows の既定値を書き込みます。バックアップを読み込まないため、w0a 自身のバックアップ ファイルがなくなっていても機能します。
元に戻すためのログは、ユーザー プロファイルの外にある %ProgramData%\w0a\backup.json に保存されています。
リスク
ここにあるものはすべて、Windows がサポートしている文書化された値です。カーネル レベルのものはなく、元に戻せないものもありません。それでも、正直に言うべきことはこれです: 設定によっては、お使いの PC で測定できる効果がない場合があります。 変更を適用しても違いを感じないなら、おそらくその感覚は正しいです。これらのページは感覚を売っているのではなく、何が変更されたかをお伝えしています。
測定したい場合は、ベンチマークの読み方のルールが当てはまります: 一度に変えるのは 1 つだけにし、平均ではなく Low を見てください。
まず、正直なところ
このセクションには設定が 1 つだけあり、変わるのは、Windows のサービスがいくつの svchost.exe プロセスで実行されるかです。メモリを増やしたり、メモリを速くしたり、ページング ファイルに触れたりはしません。お使いの PC でどれだけメモリが節約されるか、それがゲームで表れるかどうかは測定していません。この設定がある理由は Microsoft 自身の説明によるものです: サービス ホストのグループ化に関する Microsoft のページには、サービスごとに専用のプロセスを割り当てるとメモリの使用量が増えると書かれています。これが最も問題になるのはメモリが少ない PC で、そのため「レジストリ調整」ページは、RAM が 8 GB 未満の PC でだけこの設定に関する注意を表示します。
項目ごとの説明
サービス プロセスをまとめる (svchost): HKLM\SYSTEM\CurrentControlSet\Control の下に SvcHostSplitThresholdInKB = 0xFFFFFFFF (4294967295) を DWORD として書き込みます。Windows 10 バージョン 1703 以降、Windows は搭載 RAM が約 3.5 GB を超えると、ほぼすべてのサービスに専用の svchost.exe を割り当てます。サービス マネージャーがサービスを共有プロセスにまとめるのは、KB 単位で数えた搭載 RAM がこの値を下回っている間だけです。0xFFFFFFFF KB は 4 TiB で、実在するどの PC よりも大きいため、グループ化は常に適用されます。Windows 自身の値、つまり「Fix」ページが書き戻す値は 3670016 で、3.5 GB を KB で表したものです。再起動後に反映されます。15063 (Windows 10 1703) より古いビルドでは何も書き込みません: そこではサービスはすでにグループ化されており、カードは変更を報告する代わりにそのことを表示します。代償は、「レジストリ調整」ページにも書かれているとおりです: プロセスを共有するサービスは運命も共有するため、1 つのサービスがクラッシュすると、同じプロセスのほかのサービスも巻き込まれて停止することがあり、タスク マネージャーでサービスごとの数値を表示できなくなります。
自分で確認する方法
reg query "HKLM\SYSTEM\CurrentControlSet\Control" /v SvcHostSplitThresholdInKB
この項目を実行した後の値は 0xFFFFFFFF、「Fix」のカードを実行した後は 3670016 (0x380000) です。グループ化そのものを確認するには、各 svchost.exe とそれがホストするサービスを一覧表示し、再起動前の一覧と再起動後の一覧を比べます:
tasklist /svc /fi "imagename eq svchost.exe"
このセクションが行わないこと
しきい値を RAM の量に合わせて決めることはしません。以前のビルドは固定の 0x4000000 (64 GiB) を書き込んでいましたが、64 GB 以上の PC ではこれが搭載 RAM を上回らなかったため、カードが成功を報告している間もサービスは分割され続けていました。現在の値が DWORD に格納できる最大値になっているのはそのためです。
DisablePagingExecutive、LargeSystemCache、DisablePageCombining、NtfsMemoryUsage を書き込むことは決してありません。最初の 3 つはカーネルのメモリ マネージャーに属し、4 つ目は NTFS ドライバーのページ プールのサイズを決めます。w0a はカーネル レベルの値を一切書き込みません。古いビルドやほかのツールが DisablePagingExecutive、DisablePageCombining、NtfsMemoryUsage を残していた場合は、「Fix」ページのメモリとシステムの既定値カードがそれらを削除します。
このページの範囲外
「Fix」ページのメモリとシステムの既定値カードは 3670016 を書き戻します (メモリとシステムの既定値)。同じ操作で、ほかのメモリ、ファイル システム、スケジューラの値も Windows の既定値に戻し、再起動を求めます。サービスごとに 1 つのプロセスがあるとタスク マネージャーで何がわかるか、つまりこの設定によって何が見えなくなるかは、ディスクのガイドで説明しています (タスク マネージャーでディスクが 100%)。
ゲームに影響する Windows の設定はどれか、それぞれが誰に役立ち、誰には何の効果もないのか: ゲーム向けに Windows 11 を最適化する方法: 本当に意味のある設定
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。