Snaplytics JS Tests

フレームスキップテスト

ディスプレイとシステムが毎回のリフレッシュで新しいフレームを提示しているか、途中で一部をこっそり落としているかを確認します。テストは測定されたリフレッシュレートに対して各アニメーションフレームのタイミングを計測し、1枚以上のフレームが欠落した隙間をすべて通知します。正確な測定のため、実行中はこのタブにフォーカスを当て続けてください。

Hz

ライブモニター実行中 — 正確な測定のためこのタブにフォーカスを維持してください。

ライブ
最近のフレーム定時スキップ
フレーム収集中…
リフレッシュレート
Hz
定時フレーム
0
スキップ
0
スキップ率
最大の間隔

カメラキャプチャーストリップ(任意)

マーカーがレンダリングされたフレームごとに1マス進みます。高速シャッターで画面を撮影するかスローモーションで録画してください — 欠けたステップがドロップフレームを明らかにします。上記の検出器に対し副次的です。

検出器の仕組み

ブラウザーは画面リフレッシュごとに1回 requestAnimationFrame を呼び出すため、コールバック間の間隔は1つのリフレッシュ間隔(60 Hzパネルでは約16.7 ms、144 Hzでは6.9 ms)に近いままであるべきです。テストはこれらの間隔を記録し、中央値をとって期待される間隔を確立します。これにより真のリフレッシュレートも分かります。間隔が期待される間隔の約1.5倍以上に伸びると、少なくとも1枚のフレームが提示されなかったことを示します。テストは間隔を最も近い整数の間隔数に丸めて、何枚のフレームがドロップされたかを推定します。タブの切り替えやウィンドウの最小化による長い一時停止は、スキップとしてカウントされず無視されます。

フレームスキッピングとスタッター・ジャダーの違い

これらの用語は重なり合いますが、異なる欠陥を表します。フレームスキッピング(ドロップフレーム)は、パイプラインがリフレッシュサイクルに対して新しい画像を届けられないときに発生し、前のフレームが2回表示され、動きが飛ぶように見えます。スタッターは不均一なフレームペーシング、つまりフレームは到着するものの不規則な間隔で来るため、技術的には何もドロップされていなくても引っかかるように見えます。ジャダーはフレームレートがリフレッシュレートで割り切れないときに生じる、一定でリズミカルな不均一さであり、60 Hz画面で24 fps映画を見る場合などです。このテストはリフレッシュレベルで実際にドロップされたフレームを対象とします。ペーシングが不均一だと、スキップゼロの実行でも完璧に滑らかとは感じられないことがあります。

モニターがフレームをスキップする理由

  • ケーブルまたは帯域幅の制限: 高解像度での高リフレッシュレートは、ケーブルやポートのバージョンが運べる量を超える可能性があり、リンクがフレームをドロップします。これはモニターの最大レートでのみスキップする現象の典型的な原因です。
  • オーバークロックされたリフレッシュレート: パネルを定格Hz以上に押し上げると安定しているように見えますが、新しいフレームを表示する代わりに暗黙的にフレームを繰り返します。
  • GPU、ドライバー、熱の問題: 古いドライバー、過負荷や過熱のGPU、攻撃的な省電力設定はディスプレイに完成フレームが届かなくする可能性があります。
  • バックグラウンド負荷とブラウザーの制限: 他のタブやアプリでの重い処理と、フォーカスされていないタブに対する requestAnimationFrame の減速は、このテストが測定する間隔を引き起こします。

このテストが測定するものと測定しないもの

これは個別のゲームエンジンではなく、プレゼンテーションパイプライン(ディスプレイ、ケーブル、GPU出力、ドライバー、ブラウザー)に対するブラウザーレベルのテストです。このページがフォーカスされている間、システムが完成フレームをモニターにどれほど確実に渡しているかを報告します。ゲームが内部でレンダリングするフレームを見ることはできず、入力遅延を測定したりハードウェアパターンジェネレーターに代わることもできません。最も信頼できる結果を得るには、ノートパソコンを電源に接続し、重いバックグラウンドタブを閉じ、このタブにフォーカスを維持し、時間制限付きの完全な実行を完了させてください。下のオプションのキャプチャーストリップは、高速シャッターで画面を撮影するためのものあり、感じ取りにくいスキップを明らかにできます。