mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
Added standard deviation to rasterizer results. (#131781)
This calculation is important if you want to calculate the probability that one thing is better than another.
This commit is contained in:
parent
4b176a716c
commit
947367aaa2
@ -189,6 +189,7 @@ class GalleryTransitionTest {
|
||||
'90th_percentile_frame_build_time_millis',
|
||||
'99th_percentile_frame_build_time_millis',
|
||||
'average_frame_rasterizer_time_millis',
|
||||
'stddev_frame_rasterizer_time_millis',
|
||||
'worst_frame_rasterizer_time_millis',
|
||||
'90th_percentile_frame_rasterizer_time_millis',
|
||||
'99th_percentile_frame_rasterizer_time_millis',
|
||||
|
@ -82,6 +82,20 @@ class TimelineSummary {
|
||||
return _averageInMillis(_extractGpuRasterizerDrawDurations());
|
||||
}
|
||||
|
||||
/// Standard deviation amount of time spent per frame in the engine rasterizer.
|
||||
///
|
||||
/// Throws a [StateError] if this summary contains no timeline events.
|
||||
double computeStandardDeviationFrameRasterizerTimeMillis() {
|
||||
final List<Duration> durations = _extractGpuRasterizerDrawDurations();
|
||||
final double average = _averageInMillis(durations);
|
||||
double tally = 0.0;
|
||||
for (final Duration duration in durations) {
|
||||
final double time = duration.inMicroseconds.toDouble() / 1000.0;
|
||||
tally += (average - time).abs();
|
||||
}
|
||||
return tally / durations.length;
|
||||
}
|
||||
|
||||
/// The longest frame rasterization time in milliseconds.
|
||||
///
|
||||
/// Throws a [StateError] if this summary contains no timeline events.
|
||||
@ -146,6 +160,9 @@ class TimelineSummary {
|
||||
/// * "average_frame_rasterizer_time_millis": Average amount of time spent
|
||||
/// per frame in the engine rasterizer.
|
||||
/// See [computeAverageFrameRasterizerTimeMillis].
|
||||
/// * "stddev_frame_rasterizer_time_millis": Standard deviation of the amount
|
||||
/// of time spent per frame in the engine rasterizer.
|
||||
/// See [computeStandardDeviationFrameRasterizerTimeMillis].
|
||||
/// * "90th_percentile_frame_rasterizer_time_millis" and
|
||||
/// "99th_percentile_frame_rasterizer_time_millis": The 90/99-th percentile
|
||||
/// frame rasterization time in milliseconds.
|
||||
@ -240,6 +257,7 @@ class TimelineSummary {
|
||||
'worst_frame_build_time_millis': computeWorstFrameBuildTimeMillis(),
|
||||
'missed_frame_build_budget_count': computeMissedFrameBuildBudgetCount(),
|
||||
'average_frame_rasterizer_time_millis': computeAverageFrameRasterizerTimeMillis(),
|
||||
'stddev_frame_rasterizer_time_millis': computeStandardDeviationFrameRasterizerTimeMillis(),
|
||||
'90th_percentile_frame_rasterizer_time_millis': computePercentileFrameRasterizerTimeMillis(90.0),
|
||||
'99th_percentile_frame_rasterizer_time_millis': computePercentileFrameRasterizerTimeMillis(99.0),
|
||||
'worst_frame_rasterizer_time_millis': computeWorstFrameRasterizerTimeMillis(),
|
||||
|
@ -463,6 +463,7 @@ void main() {
|
||||
'worst_frame_build_time_millis': 19.0,
|
||||
'missed_frame_build_budget_count': 2,
|
||||
'average_frame_rasterizer_time_millis': 16.0,
|
||||
'stddev_frame_rasterizer_time_millis': 4.0,
|
||||
'90th_percentile_frame_rasterizer_time_millis': 20.0,
|
||||
'99th_percentile_frame_rasterizer_time_millis': 20.0,
|
||||
'worst_frame_rasterizer_time_millis': 20.0,
|
||||
@ -578,6 +579,7 @@ void main() {
|
||||
'99th_percentile_frame_build_time_millis': 19.0,
|
||||
'missed_frame_build_budget_count': 2,
|
||||
'average_frame_rasterizer_time_millis': 16.0,
|
||||
'stddev_frame_rasterizer_time_millis': 4.0,
|
||||
'90th_percentile_frame_rasterizer_time_millis': 20.0,
|
||||
'99th_percentile_frame_rasterizer_time_millis': 20.0,
|
||||
'worst_frame_rasterizer_time_millis': 20.0,
|
||||
|
Loading…
Reference in New Issue
Block a user