1
0
mirror of https://github.com/flutter/samples.git synced 2025-11-11 15:28:44 +00:00

Update web/ samples to work with Flutter SDK (#134)

* add package:http dependency in dad_jokes

* add package:http dependency in filipino_cuisine

* don't build package:http demos until flutter/flutter#34858 is resolved

* update gallery

* update github_dataviz

* update particle_background

* don't build github_dataviz (uses package:http)

* update slide_puzzle

* update spinning_square

* update timeflow

* update vision_challenge

* update charts

* update dad_jokes

* update filipino cuisine

* ignore build output

* update timeflow and vision_challenge

* update slide_puzzle

* don't commit build/ directory

* move preview.png images to assets

* fix path url join

* update readme

* update web/readme.md
This commit is contained in:
John Ryan
2019-09-10 09:49:58 -07:00
committed by GitHub
parent 16fa475ff8
commit 317d459a58
746 changed files with 14607 additions and 61610 deletions

View File

@@ -0,0 +1,63 @@
import 'dart:collection';
class FrameNanny {
static const _bufferSize = 200;
static const _maxFrameDuration = Duration(milliseconds: 34);
final _buffer = ListQueue<Duration>(_bufferSize);
final _watch = Stopwatch();
Duration tick(Duration source) {
_watch.start();
_buffer.add(source);
while (_buffer.length > _bufferSize) {
_buffer.removeFirst();
}
if (source > _maxFrameDuration) {
source = _maxFrameDuration;
}
if (_watch.elapsed > const Duration(seconds: 2)) {
var goodCount = 0;
var sum = const Duration();
Duration best, worst;
for (var e in _buffer) {
sum += e;
if (e <= _maxFrameDuration) {
goodCount++;
}
if (best == null || e < best) {
best = e;
}
if (worst == null || e > worst) {
worst = e;
}
}
_watch.reset();
print([
'**Nanny**',
'${(100 * goodCount / _buffer.length).toStringAsFixed(1)}%',
'<= ${_maxFrameDuration.inMilliseconds}ms',
'best:',
best?.inMilliseconds,
'avg:',
_safeDivide(sum, _buffer.length),
'worst',
worst?.inMilliseconds
].join(' '));
}
return source;
}
}
Object _safeDivide(Duration source, int divisor) {
if (divisor == 0) {
return double.nan;
}
return (source ~/ divisor).inMilliseconds;
}