8

私の質問はChrome DevToolsについてですが、具体的にはタイムラインタブについて質問があります。 私は何度も読んだことがあるので、ブラウザは60fpsの速度でピクセルをレンダリングする必要があります。ときには、実行中の重いJSがあり、60fpsが起きないようにしています。また、DOMツリー(一部または全部のツリー)の再計算と再描画を引き起こすCSSとJSがある場合、1つのフレームに対して〜16ms以上かかる場合もあります。ここで我々のアプリから、このような長いフレームの画像は、次のとおりです。devtoolsのタイムラインを正しく理解するには?

enter image description here

[OK]を、ここで私は2つの要求がそんなに時間(192ms +約14msを消費し)を取ることを、はっきりと見ることができ、そのブラウザは、60fpsのをペイントすることはできませんそれは近くにも得られません。

ここものの、別の画像です:

enter image description here

だから、今、多くの方が良いでしょう。 これは〜42fpsです。しかし今、私は理由を理解できません。

私は "更新レイヤーツリー"と "ペイント"機会をいくつか持っています。いくつかのマウスイベントですが、それらのすべては< = 1msです。

このフレームには、このような「イベント」が12個あります。そのうち10個は0.30msよりも少ないので、それらを合計すると16ms(正確には3.57)になりますが、Chromeはこのフレームが23.9msだと言います。

なぜ私はここにジャンクがあるとタイムラインが言っているのですか?どのようにそれを取り除くために私は何をすべきか、ボトルネックがどこにあるかを知る方法は?

タイムラインを調べる際に何かが間違っているので、私はここで少し混乱しています。そのような "ジャンク"を取り除く方法とその検出方法に関する詳細な説明や詳細なチュートリアルを教えてください。私はすでに記事のカップルを読んで、ほとんどパフォーマンスにUdemyのコースを終えたけれども、私はまだ混乱している。..

は私がいることをそのオープンスペースで実行する「ネイティブ」のコードがあると思われるあなたに

答えて

2

ありがとうございましたタイムラインは報告されません。

代わりにCPUプロファイルを取得するには、開発ツールの[プロファイル]タブを使用してみてください。これにより、実行中のネイティブChromeコードである「(プログラム)」のバーが表示されます。それは少なくとも何が起こっているのかを理解するための始まりかもしれません。

タイムラインは、右側の白いギャップを示しています Timeline shows white gap on right side

プロファイラがいる場合(プログラム)とガベージコレクション "(G ... R)" が Profiler shows Program and GC

が起こることを示していますそこには "(プログラム)"という大きなブロックがあります。クロム://トレースタブを使用すると、次のようなネイティブ/内部の情報がすべて表示されます:

enter image description here

+0

ありがとうございました!これは理にかなっていますが、どうしてこれがなぜ起こるのか、それ以外のことは分かりませんか?そしてそれを取り除く方法? – aprok

関連する問題