ゲーム実行中の w0a のエンジンのコスト
エンジンをオンにして疑似ゲームを実行したとき、w0a が使ったのは平均で論理プロセッサ 1 つの 0.15% でした。1 台の PC で測定したもので、実際のゲームでは測定していません。
短い回答
2026 年 10 月 23 日に 1 台の PC で、エンジンをオンにした疑似ゲーム中に測定したところ、w0a 自身のプロセスが使ったのは平均で次のとおりでした:
- 論理プロセッサ 1 つの 0.15% (この PC には 16 個あります)
- 7.2 Mcycle/s、つまり 1 秒あたり 7.2 M (メガ) のプロセッサ サイクル
- 1 秒あたり 29.6 回のコンテキスト スイッチ
ワーキング セット (RAM 上に保持していたメモリ) は、測定した 4 つの状態で平均 102 ~ 120 MB でした (この状態では 119.6 MB)。
どれもゼロではありません。より負荷の高い PC での測定は後のほうにあります。
実際のゲームでは測定していません。 ゲームは疑似ゲームで、黒い全画面ウィンドウを表示するだけで何も描画しないプログラムです。
数値の意味
- 論理プロセッサ 1 つに対する割合。 0.15% は、16 個ある論理プロセッサのうち 1 つで、1 秒ごとに 1.5 ms のプロセッサ時間です。Windows はこの時間を約 15.6 ms 刻みで数えるため、1 秒ごとのサンプルの大半は 0.00% (中央値) になり、1 刻みを捉えたサンプルは 1.56% (95 パーセンタイル) になります。このため、次の数値が主な指標です。
- サイクル (Mcycle/s)。 w0a のスレッドが使った 1 秒あたりのプロセッサ サイクル数 (100 万単位) です。スレッドごとの Windows のサイクル カウンターから読み取っており、刻みに丸められません。中央値は 5.8 Mcycle/s でした。目安として、1 GHz は 1 秒あたり 1,000 M サイクルです。
- コンテキスト スイッチ。 w0a のスレッドのいずれかが実行のためにプロセッサに載せられた 1 秒あたりの回数で、全スレッドの合計です。1 回ごとに、何かの処理のためにスレッドが起こされています。
- ワーキング セット。 w0a のメモリのうち RAM 上に保持されている部分です。エンジンをオンにしたゲーム中は平均 119.6 MB、最大 122.7 MB でした。
4 つの状態
各状態は 5 分間続きました。「エンジン オフ」は、ゲーム モード スイッチのうち電源プラン以外のすべての部分がオフだったことを意味します。電源プランは測定中には変更していません: w0amax が最初から最後まで有効でした。
| 状態 | サイクル、平均 (中央値) | 論理プロセッサ 1 つに対する割合 | 1 秒あたりのコンテキスト スイッチ | ワーキング セット |
|---|---|---|---|---|
| アイドル、エンジン オフ | 4.5 (2.4) Mcycle/s | 0.09% | 10.9 | 103.2 MB |
| ゲーム中、エンジン オフ | 1.7 (1.5) Mcycle/s | 0.08% | 10.7 | 108.2 MB |
| アイドル、エンジン オン | 5.3 (2.9) Mcycle/s | 0.10% | 13.9 | 102.0 MB |
| ゲーム中、エンジン オン | 7.2 (5.8) Mcycle/s | 0.15% | 29.6 | 119.6 MB |
各行は順番に測定しており、その間も PC 上のほかのプログラムは動き続け、起動し続けていました。そのため、2 つの行の差をエンジンだけによるものとは言えません。
エンジン オフでは、アイドルのほうがゲーム中より高い値になっています。どちらの w0a も起動直後にまずアイドルで測定しており、その間 .NET ランタイムはまだバックグラウンドで w0a のコードをコンパイルしていました: 2.30 Mcycle/s で、アイドル合計の 51.4% です (エンジン オンでは 51.6%)。エンジン オフのゲーム中には 0.41 Mcycle/s まで下がっていました。この低下分 1.9 Mcycle/s は、2.8 Mcycle/s の差の約 3 分の 2 にあたります。
測定方法
- PC: AMD Ryzen 7 9800X3D (8 コア、16 論理プロセッサ)、RAM 31.6 GB、NVIDIA GeForce RTX 5070 Ti、Windows 11 Pro ビルド 26200。
- w0a: バージョン 2.1、2026 年 10 月 23 日に公開されたビルド。ウィンドウを閉じて通知領域で動作させました。状態間で変えたのはエンジンのスイッチだけで、測定後に元に戻しました。
- サンプラー: 1 秒に 1 回、別の測定プログラムが Windows の
NtQuerySystemInformationで w0a のプロセスを読み取りました: 各スレッドのプロセッサ時間、サイクル、コンテキスト スイッチ、そしてワーキング セットです。各状態で 300 サンプルを得ました。 - 疑似ゲーム: 1920×1080 の全画面ウィンドウで、独自のタイマーにより DXGI 経由で 1 秒あたり 240 枚の黒いフレームを表示します。フォアグラウンドで実行し、
engine.logには w0a がこれをゲームと認識し、エンジン オンでは優先度を AboveNormal に上げたことが記録されています。別のプログラムのウィンドウがその上に表示されたままでした。 - 順序: まず w0a なしで疑似ゲームを 2 分間実行し、基準としました。次に w0a をエンジン オフで起動し、落ち着くまで 90 秒置いてアイドルで測定し、続いて疑似ゲームを起動して 40 秒置いてから、ゲーム実行中で測定しました。その後、新しく起動した w0a をエンジン オンにして同じ手順を行いました。
- PC の負荷: 測定は静かな PC で、プロセッサ全体の使用率 3% の状態から始めました。エンジン オンのゲーム中の状態では 165 個のプロセスが実行中で、w0a が数えた新しいプロセスの起動は 1 分あたり 38 ~ 523 個でした。
疑似ゲームでわかったこと
疑似ゲームは、w0a の有無にかかわらず、ゲーム中の 3 回の測定すべてで 1 秒あたり 240 フレームを表示しました。疑似ゲーム自身のプロセッサ使用量は、w0a なしで 203.4 Mcycle/s、エンジン オフで 205.5、エンジン オンで 207.5 でした。この測定ではその差がどこから来るのかわからないため、w0a の分としては数えていません。疑似ゲームは何も描画しないため、実際のゲームのフレーム時間については何もわかりません。
エンジン オンでは、w0a は Event Tracing for Windows (ETW) を通じてゲームのフレームを数えており、対象はそのゲームだけに絞られています。これらのイベントはゲーム自身のプロセスが各フレームを表示するときに書き込むため、そのコストの分は w0a ではなくゲームの数値に含まれます。その分の大きさは測定していません。
より負荷の高い PC での測定
その後、2026 年 10 月 24 日に同じ PC で、疑似ゲームの周りに負荷をかけた測定を 2 回行いました。どちらもその日に公開された新しいビルドの w0a を使い、エンジンはオンでした。
- 4 つの区間に分けた 71 分間: まず、バックグラウンド スレッドですべての論理プロセッサを 50% ビジーに保つ負荷。次に 25% に加えて 150 MB/s のディスク読み取り。次に 50% に加えて 100 MB/s のディスク読み取りと、5 秒ごとに起動する短時間のプログラム。最後に追加の負荷なし。疑似ゲームも 90 秒ごとに短時間の補助プログラムを起動しており、w0a は開始前から実行中でした。区間ごとの w0a の平均は、論理プロセッサ 1 つの 0.12% ~ 0.17%、5.1 ~ 7.2 Mcycle/s でした。
- 1 秒あたり 4 つの新しいプログラム、2 分半の測定を 2 回: w0a が数えた起動は 1 分あたり 637 回と 648 回でした。w0a の平均は、論理プロセッサ 1 つの 0.30% と 0.25%、14.8 と 14.6 Mcycle/s、1 秒あたり 66.9 回と 68.0 回のコンテキスト スイッチ、ワーキング セット 117.1 MB と 116.7 MB でした。どちらの w0a も測定の 90 秒前に起動しており、そのうち約 5.3 Mcycle/s はまだ .NET ランタイムのコンパイルが占めていました。
起動するプログラムはすべてイベントとして w0a に届き、w0a はその 1 つ 1 つを確認します。予約コアがオンのときは、そのプログラムをゲームのコアから移動するかどうかも判断します。起動するプログラムが多いほど、その処理も増えます。これらの測定は新しいビルドと異なる負荷を使っているため、上の表との前後比較にはなりません。
測定していないこと
- 実際のゲーム。 ここでのゲームは何も描画しない疑似ゲームです。実際のゲームと並べたときの w0a のコストは測定していません。
- フレーム時間。 エンジンがお使いのゲームのフレーム時間を変えるかどうかは、ここでは測定していません。ご自分の PC で測定するには、ベンチマークの読み方の説明に従って、ベンチマークで A: エンジン オフ、B: エンジン オンの A/B シリーズを実行してください。
- ほかのプロセッサ。 測定したプロセッサは 8 コアの AMD Ryzen 7 9800X3D の 1 つだけです。コアが少ない、または遅いプロセッサでは、同じ処理でも占める割合が異なります。どれだけ異なるかは測定していません。
- ウィンドウを開いた状態の w0a。 ウィンドウは最初から最後まで閉じていました。開いた状態のコストは測定していません。
- グラフィックス カード、ディスク、ネットワーク。 測定したのは w0a のプロセッサ時間とメモリだけです。
- w0a のプロセス外の処理。 プログラムの起動やフレームの表示など、イベントを w0a に届ける処理の一部は、w0a のプロセスの外で Windows やゲームが行っています。その部分は測定していません。
エンジンのオンとオフ
新しいインストールでは、エンジンはすべてオフです。エンジンは Process Manager ページにある ゲーム モード スイッチの各部分です。
ご自分のゲーム中にエンジンが何をしたかを見るには、engine.log を開いてください: 1 つの動作が 1 行です。同じ場所にある perf.log には、そのうちいくつかの動作がゲーム中にどれだけのコストだったかの行があります。どちらもログ ファイルの場所で説明しています。
関連記事
クリックから画面のピクセルが変わるまでの十数段階のうち、ソフトウェアが受け持つのは 3 つだけで、残りはファームウェア、ディスプレイ、ゲームが受け持ちます: 入力遅延を減らす方法: ソフトウェアで短縮できるもの、できないもの
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。