私はChromeでインタラクションのユーザーが知覚する待ち時間を測定しようとしています。これは、キーを押してから画面を更新するまでの時間です。この例では、新しいコンテンツで画面の大部分を再描画しています。ネットワークレイテンシは関係ありません。ちょうどHTMLを更新しています。Chrome DevToolsは対話の反応をどのように測定しますか?
以下のスクリーンショットでは、Chrome DevToolsのkeydownイベントが表示され、javascriptが大量に実行されています。その後、ペイントや合成などが行われ、keydownイベントの「レスポンス」スパンが終了します。
ChromeがGPUに新しいレンダリングを書き込んだので、水平の灰色の線がvsyncであるとします(これらの行がどこに文書化されているか分かりますか?)。 keydownイベントは、私が測定しようとしているものによく近似しています。これは、keydownからDOMを突然変異させた後の最初のグレーラインの直後までの時間を測定するためです。
私はこの時間をjavascriptで近似するために、requestAnimationFrame、requestIdleCallback、メッセージの受け渡しを伴う一式polyfill、および上記のいくつかの組み合わせを使用しています。それらのすべてが純粋なJavascript時間よりも長いように思われますが、ほとんどの場合、実際に画面を更新する時間を過小評価したり過大評価したりします。
誰もこの生産時間を測定するより良い方法を知っていますか? Chrome DevToolsの指標はどのように機能しますか?私は何か他のものを完全に測定すべきですか?
AFAIKできません。 https://crbug.com/694075 – wOxxOm
リンクをありがとう!私はこの問題+/- 16msを解決できるかどうかについてはまだ興味があります(つまり、今のところこの問題を無視できる場合)。 –