平均 FPS は高いのに 1% Low が悪い: その意味

平均はすべてのフレームの平均値で、まさにそのせいで体感するフレームが隠れます。1% Low とは何か、2 つの差が大きいと何がわかるか、そして変更で値が動いたかどうかを知る方法を説明します。

カウンターは 200 と言っているのに、ゲームは 90 のように感じられます。壊れているものはなく、丸 1 秒止まることもありませんが、撃ち合いが数字の示すとおりに感じられることはありません。この体験には名前と測定値があり、それが読めるようになれば、間違った数字を追いかけるのをやめられます。

まず、正直な一文から。 このページは測定の説明であって、対処法ではありません。w0a はどこにも「向上した FPS」の数値を表示しないので、変更が役に立ったかどうかは、自分の変更前と変更後のキャプチャから、自分の実行ごとのノイズと照らし合わせて読み取るものです。そして下の数値はすべて、「ベンチマーク」ページが保存するファイルから計算し直せます。

3 つの数値は実際には何か

1 回の実行のすべてのフレームを、最も遅いものから最も速いものへ並べます。

フレーム タイムは同じデータをミリ秒で表したもので、この計算は覚えておく価値があります。このページの残りが具体的になるからです: 16.7 ms は 60 FPS、6.9 ms は 144、4.2 ms は 240 です。

つまり、平均が 200 で 1% Low が 70 の実行とは、典型的なフレームが約 5 ms、最も悪い 100 分の 1 が約 14 ms かかった実行で、ほぼ 3 倍の長さです。そして 200 FPS では、フレームの 1% は 1 秒に 2 フレーム です。1 秒に 2 回、画面が 3 フレーム分の時間止まっています。それが体感しているもので、平均をいくら見てもそれはわかりません。

数値ではなく差を読む

1% Low が 70 というのは、90 FPS の実行なら非常によく、200 FPS の実行なら警戒すべき値です。役に立つ読み方は、関係を見ることです:

見えるもの通常意味すること
平均と 1% Low が近い安定してフレームが届いています。フレーム レートがそれほど高くなくても、これが「なめらか」ということです。
1% Low が平均よりずっと低い本来は健全な実行を、何かが中断させています。負荷ではなく、イベントです。
0.1% Low が 1% Low よりずっと低いまれで深いイベント: ドライバーのリセット、ページングの嵐、長いディスクの読み込み。
すべてが一緒に低い単に、ハードウェアが出せる以上のものを求めています。設定を下げてください。

3 行目は読み違えやすい行です。1% Low は問題ないのに 0.1% Low がひどい場合、フレーム ペーシングの問題ではありません。少数の特定の出来事があるということで、出来事は見つけられます。

悪いテールが、低い平均とは別の問題である理由

低い平均は 負荷 の問題です: マシンはできるだけのことをしていて、それでも足りません。答えは設定、解像度、または別のハードウェアです。

悪いテールは イベント の問題です: マシンはおおむね追いついていて、何かが周期的にそれを止めています。答えはその何かを見つけることです。候補の一覧は短く、どれも痕跡を残します: プロセッサのコアを占有するドライバー、ディスクから戻ってくるページ、アセットの読み込み、バックグラウンドのタスク、コンパイル中のシェーダー、ドライバーのリセットです。Windows 11 でゲームがカクつく理由 はその一覧を原因ごとに説明しており、カクつき探偵が調べるもの はその自動化版です。カクつき探偵は、根拠のない信頼度のスコアを示すのではなく、各検出結果に確証あり、可能性大、候補、未チェックのラベルを付けます。

中間のケースもあります: 平均では GPU が限界ではないのに、最も忙しい瞬間には限界に達するマシンです。遅れるフレームは、まさに最も多くのことが起きているフレーム、つまり撃ち合いの場面です。Low の値が悪いのに GPU の使用率が満杯よりかなり下にとどまっている場合は、GPU 使用率が 100% にならない がその診断のページです。

これらすべてを意味あるものにする測定の規律

パーセンタイルは、より少ないフレームから計算されるので、平均よりノイズが大きくなります。変更していない同じ構成で 2 回実行しても同じ 1% Low にはならず、その 2 つの差が、そもそも検出できる最小の変化です。

だから、キャプチャは自分自身のノイズと並べたときにだけ役に立ちます。「ベンチマーク」ページは、各キャプチャ自身の 1 分ごとのばらつきから ノイズ フロア を計算し、平均、1% Low、0.1% Low について別々に表示します。そして、その範囲内に収まる差を主張することはありません。これが 1 つの動作に込められた規律のすべてです: 自分の実行ごとの揺れより小さい結果は、結果ではありません。

実際の手順:

  1. 同じゲーム、同じマップやリプレイ、同じ長さ、同じゲーム内設定にします。
  2. 同じようにプレイします。壁を見て過ごした実行と、撃ち合いの中で過ごした実行は比べられません。
  3. 何かを変える前に、変更していない構成を少なくとも 3 回実行し、自分のノイズがどの程度かを把握します。
  4. 変えるのは 1 つ だけです。5 つの変更と 1 回の測定では、どれが効いたのかは何もわかりません。そして、別々に測定した 5 つの向上を足し合わせるのは計算であって、測定ではありません。
  5. Low の値を比べます。ページの各数値が何のためにあるかは ベンチマークの読み方 で説明しています。

正確な計算を、数値ごとに

「ベンチマーク」ページがキャプチャに対して行うことを、行う順に示します。

手順規則理由
数えるフレームゲームが前面のウィンドウだった間に描画されたフレームだけです。ゲームが前面に戻った後の最初の 1 秒は除き、検出されたフォーカスの喪失の前の最後の 0.2 秒も除きます。除いた時間は実行とともに報告されます。キャプチャは w0a 自身のウィンドウから開始・停止するので、その両端はゲームがバックグラウンドにある状態です。記録されたあるキャプチャでは、1% Low の元になった 185 フレームのうち 94 フレームがその両端でした。1 秒という数値は選んだ値で、測定した値ではありません。
停止200 ms より長いフレーム間隔は、平均とすべてのパーセンタイルから除き、別に数えます。200 ms を超えるものは、レンダリングではなく、ロード画面、Alt+Tab、またはドライバーの停止です。平均に含めると、本当のフレームがすべて埋もれてしまいます。
平均 FPS数えたフレームを、それにかかった時間で割ったもの: フレーム数 × 1000 ÷ 合計ミリ秒。
1% Low数えたフレーム タイムを並べます。最も遅い 1% (切り上げ、最低 1 フレーム) を取り、そのフレーム タイムを平均して、結果を FPS に変換します: 1000 ÷ その平均。もう 1 つのよくある定義、99 パーセンタイルのフレーム タイムでのフレーム レートは、意図的に採用しませんでした: ちょうど 1% のフレームがカクつくと境界に当たり、平均とほぼ同じ数値を報告してしまうからです。
0.1% Low同じ方法で、最も遅い 0.1% を使います。
99 および 99.9 パーセンタイルのフレーム タイムミリ秒で別に報告します。パーセンタイルの定義を使う読者やツールのためです。
短すぎて読めない900 フレーム未満では、パーセンタイルが意味を持つだけのフレームがありません。
カクつきの回数フレームが、周囲 3 秒間の中央値の 2 倍とその中央値に 8 ms を足した値の両方より長く、1 秒以下であれば、ヒッチとします。固定のフレーム数ではなく 3 秒にしているのは、規則が 60 FPS でも 300 FPS でも同じ意味になるようにするためです。8 ms の項は、高いフレーム レートでの普通の揺らぎがカクつきとして数えられるのを防ぎます。200 ms から 1 秒の間のフレームはパーセンタイルからは除きますが、ここでは含めます: 250 ms の シェーダー コンパイル の引っかかりは、まさにこの回数が捉えるためにあるものです。
ノイズ フロアキャプチャを 60 秒のブロックに分けます。比較のそれぞれの側に完全なブロックが少なくとも 2 つ必要で、足りなければページは数値に色を付ける代わりに「比較不可」と表示します。フロアは、両側のブロックごとのばらつきから求めた 95% 区間 (ウェルチの方法) で、「変更前」の値に対するパーセントです。数えるのは、失われたイベントのない完全なブロックだけで、0 のフロアが出ることはありません。自分のブロックごとの揺れの範囲内の差は、結果ではありません。
ペアのシリーズA/B のシリーズを実行したとき、変化が報告されるのは、正確な符号付き順位検定と、中央値の差の 95% ブートストラップ区間 (10,000 回の再標本化) の両方が 0 を含まず、かつ中央値が、10 回の予備実行でその構成が検出できると示された最小の効果以上である場合だけです。シリーズには少なくとも 6 ペアが必要で (5 ペアでは、取りうる最小の p 値が 0.0625)、8 ペアを ABBA の順で実行することを勧めます。変更前と変更後の 1 ペアだけでは、変更の効果と、温まった GPU や違うスポーン地点の影響を区別できません。

自分で確認する: CSV から計算し直す

「ベンチマーク」ページの CSV を保存 は、side,kind,name,value の列を持つ 1 つの表を書き出します。kind が metric の行は要約の数値で、kind が frame の行はフレーム間隔で、1 行に 1 つずつ、ミリ秒単位のフレーム タイムが value に入っています。フレームの行には停止も含めて全系列が入っており、それはまさに、200 ms の規則を自分で適用して同じ数値にたどり着けるようにするためです。

始める前に 2 つのこと:

スプレッドシートでは: 1 つの side と kind = frame で絞り込み、200 を超える行を削除し、value を大きいものから小さいものへ並べ、行数を 100 で割って切り上げた N について最初の N 行を平均し、1000 をその平均で割ります。結果は、その側の low_1pct_fps と一致するはずです。

PowerShell では (もう一方の側には before を after に置き換えます):

$ms = Import-Csv .\capture.csv |
  Where-Object { $_.kind -eq 'frame' -and $_.side -eq 'before' } |
  ForEach-Object { [double]::Parse($_.value, [Globalization.CultureInfo]::InvariantCulture) } |
  Where-Object { $_ -le 200 } |
  Sort-Object
$take = [Math]::Max(1, [Math]::Ceiling($ms.Count * 0.01))
1000 / ($ms | Select-Object -Last $take | Measure-Object -Average).Average

0.1% Low には 0.01 の代わりに 0.001 を使います。同じファイルでできる簡単な整合性の確認が 2 つあります: 200 以下のフレームの行の数は frames の指標と等しく、200 を超える行の数は excluded_over_stall_ms と等しくなります。

パーセンタイルを気づかないうちに台無しにする 2 つのこと

フレーム生成。 挿入されたフレームには、新しいゲームの状態が含まれていません。フレームを数えて求めた 1% Low は数値を出し続けますが、もう応答性を表してはいません。そして応答性こそが、それを見ていた唯一の理由です。測定中はフレーム生成をオフにしてください。これは定義の問題であって、フレーム生成がカクつきを起こすという主張ではありません。

ロード画面と一時停止。 3 秒の読み込みの一時停止は、3000 ミリ秒の 1 つの「フレーム間隔」で、データに残しておくとそれが 0.1% Low になり、本当のものをすべて埋もれさせます。そのため、それほど長い間隔はパーセンタイルから除いて別に報告しており、数値が気づかないうちにそのような間隔の上に成り立つことはありません。

1% Low を動かさないもの

2 つは混同しやすいので、はっきり言っておく価値があります: 遅延の機能とパーセンタイルの安定性は、別々の主張です。 メーカーの低遅延モードはレンダリング キューの深さを減らし、その減少は測定されています。それがフレーム タイムのパーセンタイルを改善することを示す、公開された測定はありません。どちらも持つ価値はありえますが、同じものではありません。一方をもう一方であるかのように示すページは、何かを売りつけようとしています。1% Low を安定させるクリーン インストール は公開された証拠を出典とともに検討しており、ソフトウェアでは直せない入力遅延 は、遅延への取り組みで届くものと届かないものを正直にまとめています。

より良い Low の値を約束するレジストリの一覧にも、同じ注意が当てはまります。カーネルのメモリ管理の値とタイマー分解能の上書きは、ここでは一切拒否しています。珍しいからではなく、方法論の検証に耐える測定を誰も公開していないからです。

「ベンチマーク」ページが表示しないもの

Low の値が悪く、数値ではなく原因を知りたい場合は、Windows 11 でゲームがカクつく理由 がその一覧で、カクつき探偵が調べるもの は w0a が自動で確認する内容です。CS2 に限っては、CS2 のカクつきと低 FPS がこれらすべてを 1 つのゲームに当てはめています。

関連

CS2 をプレイしていますか? 今でも効果がある起動オプションと、ビデオ設定のどの項目が実際にフレーム レートを左右するか: CS2 のカクつきと低 FPS を直す方法: 測定に基づくチェックリスト

w0a は、指示されるまで Windows の設定を変更しません。また調整は、新しい値を書き込む前に元の値を保存します。 通知を受け取る

このページは役に立ちましたか?

何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。

送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー

このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。