既存の Android プロファイリング ツールに基づいて、アプリケーションのパフォーマンスの問題を検出するために FPS を計算したいと考えています。
Systrace では、performTraversals の長さを記録できることに注意しました。私の知る限り、performTraversals は、フレームを更新する際のほとんどのジョブを含む、測定、レイアウト、および描画を実行します。それでは、performTraversals は、フレームの更新に 60 ミリ秒かかるかどうかを測定するのに十分な代表的なものでしょうか?
また、Systrace が SurfaceFlinger に費やした時間を記録していることにも注目しました。SurfaceFlinger がレンダリング目的で提供されていることは知っていますが、フレームの正確な開始点と終了点はわかりません。SurfaceFlinger でフレーム レートに費やされた時間も考慮する必要がありますか? (ただし、SurfaceFlinger が performTraversals よりも頻繁に実行されることは確認していますが、これは、SurfaceFlinger が必ずしも performTraversals に従うとは限らないことを意味します。他のシナリオでもトリガーされます。)
PS sysdump gfxinfo は認識していますが、128 フレーム (~2 秒) しか記録できませんが、必要なものはもっと長く続く可能性があります。