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

See https://github.com/flutter/flutter/pull/19121#issuecomment-419520765
This commit is contained in:
liyuqian 2018-09-14 13:24:13 -07:00 committed by GitHub
parent 8b8aeeff34
commit 872eba2d4c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 19 additions and 0 deletions

View file

@ -72,8 +72,11 @@ class GalleryTransitionTest {
'average_frame_build_time_millis',
'worst_frame_build_time_millis',
'missed_frame_build_budget_count',
'90th_percentile_frame_build_time_millis',
'99th_percentile_frame_build_time_millis',
'average_frame_rasterizer_time_millis',
'worst_frame_rasterizer_time_millis',
'missed_frame_rasterizer_budget_count',
'90th_percentile_frame_rasterizer_time_millis',
'99th_percentile_frame_rasterizer_time_millis',
]);

View file

@ -162,8 +162,11 @@ class PerfTest {
'average_frame_build_time_millis',
'worst_frame_build_time_millis',
'missed_frame_build_budget_count',
'90th_percentile_frame_build_time_millis',
'99th_percentile_frame_build_time_millis',
'average_frame_rasterizer_time_millis',
'worst_frame_rasterizer_time_millis',
'missed_frame_rasterizer_budget_count',
'90th_percentile_frame_rasterizer_time_millis',
'99th_percentile_frame_rasterizer_time_millis',
]);

View file

@ -33,6 +33,13 @@ class TimelineSummary {
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.
///
/// Returns null if no frames were recorded.
@ -80,6 +87,8 @@ class TimelineSummary {
Map<String, dynamic> get summaryJson {
return <String, dynamic> {
'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(),
'missed_frame_build_budget_count': computeMissedFrameBuildBudgetCount(),
'average_frame_rasterizer_time_millis': computeAverageFrameRasterizerTimeMillis(),

View file

@ -266,6 +266,8 @@ void main() {
]).summaryJson,
<String, dynamic>{
'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,
'missed_frame_build_budget_count': 2,
'average_frame_rasterizer_time_millis': 8.0,
@ -317,6 +319,8 @@ void main() {
expect(json.decode(written), <String, dynamic>{
'average_frame_build_time_millis': 7.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,
'average_frame_rasterizer_time_millis': 8.0,
'90th_percentile_frame_rasterizer_time_millis': 12.0,