4
juin
2013
Quick Stop Watch pour Guava
juin
2013
Un article de thierryler
Commentaires fermés
Dans un précédent billet, intitulé « Le Stop watch de Guava », je vous montrais comment utiliser le chronomètre fournit par la bibliothèque Guava. Mais pour ma part, je trouve que le Stopwatch est un peu trop « verbeux ». Je voudrais donc vous proposer une petite simplification.
Plus concrètement, voici un cas de test assez simple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | final Stopwatch sw = new Stopwatch(); sw.start(); // Fait un truc long. final long duree1 = sw.elapsed(TimeUnit.MILLISECONDS); // en milliseconde sw.reset(); // Stoppe et remet a zero sw.start(); // Fait un truc long. final long duree2 = sw.elapsed(TimeUnit.NANOSECONDS); // en nanoseconde sw.stop(); |
Ça fait beaucoup de lignes pour pas grand chose, d’autant qu’il est rapide d’oublier l’appel à « start() » après le « reset() ». Pour faire mieux, je vous propose la classe personnelle « QuickStopwatch » :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | public class QuickStopwatch { private Stopwatch stopwatch; private QuickStopwatch() { stopwatch = new Stopwatch(); } public static QuickStopwatch createAndStart() { final QuickStopwatch quickStopwatch = new QuickStopwatch(); quickStopwatch.stopwatch.start(); return quickStopwatch; } public void stop() { stopwatch.stop(); } public long restart() { return restart(TimeUnit.MICROSECONDS); } public long restart(TimeUnit desiredUnit) { final long elapsed = stopwatch.elapsed(desiredUnit); stopwatch.reset(); stopwatch.start(); return elapsed; } } |
Si on reprend le test proposé plus haut, il peut se simplifier comme suit :
1 2 3 4 5 6 7 8 9 | final QuickStopwatch qsw = QuickStopwatch.createAndStart(); // Fait un truc long. final long millis1 = qsw.restart(); // Fait un truc long. final long nano2 = qsw.restart(TimeUnit.NANOSECONDS); qsw.stop(); |
J’ai le sentiment qu’il n’y a pas photo. Et vous ?
Commentaires récents
- Le Stop watch de Guava dans
- Le Stop watch de Guava dans
- Le Stop watch de Guava dans