Unverified Commit 872eba2d authored by liyuqian's avatar liyuqian Committed by GitHub

Track 90th, 99th percentile instead of missed_frame_build_budget_count (#21754)

See https://github.com/flutter/flutter/pull/19121#issuecomment-419520765
parent 8b8aeeff
...@@ -72,8 +72,11 @@ class GalleryTransitionTest { ...@@ -72,8 +72,11 @@ class GalleryTransitionTest {
'average_frame_build_time_millis', 'average_frame_build_time_millis',
'worst_frame_build_time_millis', 'worst_frame_build_time_millis',
'missed_frame_build_budget_count', 'missed_frame_build_budget_count',
'90th_percentile_frame_build_time_millis',
'99th_percentile_frame_build_time_millis',
'average_frame_rasterizer_time_millis', 'average_frame_rasterizer_time_millis',
'worst_frame_rasterizer_time_millis', 'worst_frame_rasterizer_time_millis',
'missed_frame_rasterizer_budget_count',
'90th_percentile_frame_rasterizer_time_millis', '90th_percentile_frame_rasterizer_time_millis',
'99th_percentile_frame_rasterizer_time_millis', '99th_percentile_frame_rasterizer_time_millis',
]); ]);
......
...@@ -162,8 +162,11 @@ class PerfTest { ...@@ -162,8 +162,11 @@ class PerfTest {
'average_frame_build_time_millis', 'average_frame_build_time_millis',
'worst_frame_build_time_millis', 'worst_frame_build_time_millis',
'missed_frame_build_budget_count', 'missed_frame_build_budget_count',
'90th_percentile_frame_build_time_millis',
'99th_percentile_frame_build_time_millis',
'average_frame_rasterizer_time_millis', 'average_frame_rasterizer_time_millis',
'worst_frame_rasterizer_time_millis', 'worst_frame_rasterizer_time_millis',
'missed_frame_rasterizer_budget_count',
'90th_percentile_frame_rasterizer_time_millis', '90th_percentile_frame_rasterizer_time_millis',
'99th_percentile_frame_rasterizer_time_millis', '99th_percentile_frame_rasterizer_time_millis',
]); ]);
......
...@@ -33,6 +33,13 @@ class TimelineSummary { ...@@ -33,6 +33,13 @@ class TimelineSummary {
return _averageInMillis(_extractFrameDurations()); return _averageInMillis(_extractFrameDurations());
} }
/// The [p]-th percentile frame rasterization time in milliseconds.
///
/// Returns null if no frames were recorded.
double computePercentileFrameBuildTimeMillis(double p) {
return _percentileInMillis(_extractFrameDurations(), p);
}
/// The longest frame build time in milliseconds. /// The longest frame build time in milliseconds.
/// ///
/// Returns null if no frames were recorded. /// Returns null if no frames were recorded.
...@@ -80,6 +87,8 @@ class TimelineSummary { ...@@ -80,6 +87,8 @@ class TimelineSummary {
Map<String, dynamic> get summaryJson { Map<String, dynamic> get summaryJson {
return <String, dynamic> { return <String, dynamic> {
'average_frame_build_time_millis': computeAverageFrameBuildTimeMillis(), 'average_frame_build_time_millis': computeAverageFrameBuildTimeMillis(),
'90th_percentile_frame_build_time_millis': computePercentileFrameBuildTimeMillis(90.0),
'99th_percentile_frame_build_time_millis': computePercentileFrameBuildTimeMillis(99.0),
'worst_frame_build_time_millis': computeWorstFrameBuildTimeMillis(), 'worst_frame_build_time_millis': computeWorstFrameBuildTimeMillis(),
'missed_frame_build_budget_count': computeMissedFrameBuildBudgetCount(), 'missed_frame_build_budget_count': computeMissedFrameBuildBudgetCount(),
'average_frame_rasterizer_time_millis': computeAverageFrameRasterizerTimeMillis(), 'average_frame_rasterizer_time_millis': computeAverageFrameRasterizerTimeMillis(),
......
...@@ -266,6 +266,8 @@ void main() { ...@@ -266,6 +266,8 @@ void main() {
]).summaryJson, ]).summaryJson,
<String, dynamic>{ <String, dynamic>{
'average_frame_build_time_millis': 7.0, 'average_frame_build_time_millis': 7.0,
'90th_percentile_frame_build_time_millis': 11.0,
'99th_percentile_frame_build_time_millis': 11.0,
'worst_frame_build_time_millis': 11.0, 'worst_frame_build_time_millis': 11.0,
'missed_frame_build_budget_count': 2, 'missed_frame_build_budget_count': 2,
'average_frame_rasterizer_time_millis': 8.0, 'average_frame_rasterizer_time_millis': 8.0,
...@@ -317,6 +319,8 @@ void main() { ...@@ -317,6 +319,8 @@ void main() {
expect(json.decode(written), <String, dynamic>{ expect(json.decode(written), <String, dynamic>{
'average_frame_build_time_millis': 7.0, 'average_frame_build_time_millis': 7.0,
'worst_frame_build_time_millis': 11.0, 'worst_frame_build_time_millis': 11.0,
'90th_percentile_frame_build_time_millis': 11.0,
'99th_percentile_frame_build_time_millis': 11.0,
'missed_frame_build_budget_count': 2, 'missed_frame_build_budget_count': 2,
'average_frame_rasterizer_time_millis': 8.0, 'average_frame_rasterizer_time_millis': 8.0,
'90th_percentile_frame_rasterizer_time_millis': 12.0, '90th_percentile_frame_rasterizer_time_millis': 12.0,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment