102 votes

Dart est-il possible de mesurer le temps d'exécution d'un petit code

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 ?

224voto

Alexandre Ardhuin Points 16297

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}');

10voto

Seth Ladd Points 13589

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

9voto

Jhionan Santos Points 114

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

0voto

Robbendebiene Points 1721

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();
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X