J'ai créé un extrait de code impliquant l'analyse d'un code HTML et je veux savoir si le code s'exécute lentement ou non, est-ce possible ?
Réponses
Trop de publicités?Vous pouvez utiliser Stopwatch pour mesurer le temps d'exécution :
Stopwatch stopwatch = new Stopwatch()..start();
doSomething();
print('doSomething() exécuté en ${stopwatch.elapsed}');
Dart 2:
- Inférence de type
-
Optionnel
new
final stopwatch = Stopwatch()..start(); doSomething(); print('doSomething() exécuté en ${stopwatch.elapsed}');
Si vous êtes sur le web, vous pouvez obtenir un minuteur haute résolution :
num time = window.performance.now();
De http://api.dartlang.org/docs/releases/latest/dart_html/Performance.html#now
Utilisez les devtools en mode profil pour obtenir le meilleur résultat
import 'dart:developer';
Timeline.startSync('interesting function');
// iWonderHowLongThisTakes();
Timeline.finishSync();
Connecté à votre application, ouvrez l'onglet des événements de la Timeline des DevTools.
Sélectionnez l'option d'enregistrement Dart dans les paramètres de Performance.
https://docs.flutter.dev/testing/code-debugging#trace-dart-code-performance
Pour étalonner des fonctions ou du code individuel, je recommande vivement d'utiliser le package officiel benchmark_harness. Même s'il utilise Stopwatch
en interne, il introduit par exemple une phase de préchauffage pour fournir des résultats plus réalistes.
import 'package:benchmark_harness/benchmark_harness.dart';
class TemplateBenchmark extends BenchmarkBase {
const TemplateBenchmark(super.name);
@override
void run() {
// any code to benchmark
}
}
void main() {
// setup benchmark
const benchmark = TemplateBenchmark('foo');
// run and output results
benchmark.report();
// or run and write duration to variable
final time = benchmark.measure();
}