diff --git a/packages/flutter_driver/lib/src/driver/timeline_summary.dart b/packages/flutter_driver/lib/src/driver/timeline_summary.dart index a39db0860f8..42bec7a74b0 100644 --- a/packages/flutter_driver/lib/src/driver/timeline_summary.dart +++ b/packages/flutter_driver/lib/src/driver/timeline_summary.dart @@ -163,17 +163,15 @@ class TimelineSummary { double _averageInMillis(Iterable durations) { if (durations.isEmpty) throw new ArgumentError('durations is empty!'); - - final int total = durations.fold(0, (int t, Duration duration) => t + duration.inMilliseconds); + final double total = durations.fold(0.0, (double t, Duration duration) => t + duration.inMicroseconds.toDouble() / 1000.0); return total / durations.length; } double _percentileInMillis(Iterable durations, double percentile) { if (durations.isEmpty) throw new ArgumentError('durations is empty!'); - assert(percentile >= 0.0 && percentile <= 100.0); - final List doubles = durations.map((Duration duration) => duration.inMilliseconds.toDouble()).toList(); + final List doubles = durations.map((Duration duration) => duration.inMicroseconds.toDouble() / 1000.0).toList(); doubles.sort(); return doubles[((doubles.length - 1) * (percentile / 100)).round()]; @@ -182,9 +180,8 @@ class TimelineSummary { double _maxInMillis(Iterable durations) { if (durations.isEmpty) throw new ArgumentError('durations is empty!'); - return durations - .map((Duration duration) => duration.inMilliseconds.toDouble()) + .map((Duration duration) => duration.inMicroseconds.toDouble() / 1000.0) .reduce(math.max); }