BowlerKernel
TickToc.java
Go to the documentation of this file.
1 package com.neuronrobotics.sdk.common;
2 
3 import java.text.DecimalFormat;
4 import java.util.ArrayList;
5 
6 public class TickToc {
7  private static final DecimalFormat df = new DecimalFormat(".000");
8  private static boolean enabled=false;
9 
10  public static class Pair {
11  public long integer;
12 
13  public String message;
14  public Pair(long timestamp,String message) {
15  integer=timestamp;
16  this.message=message;
17  }
18  public void print(Pair start,Pair previous) {
19  double tookms = integer-start.integer;
20  String m=" took "+df.format(tookms/1000.0)+" seconds ";
21  if(previous!=null) {
22  double diffms = integer-previous.integer;
23  m=m+" from last event "+df.format(diffms/1000.0)+" seconds ";
24  }
25  m=m+" "+message;
26  System.out.println(m);
27  }
28  }
29 
30  private static ArrayList<Pair> events = new ArrayList<>();
31 
32  public static void tic(String message) {
33  if(!isEnabled())
34  return;
35  events.add(new Pair(System.currentTimeMillis(), message));
36  }
37 
38 
39  public static void clear() {
40  events.clear();
41  }
42  public static void toc() {
43  if(!isEnabled())
44  return;
45  events.add(new Pair(System.currentTimeMillis(), "Toc end event"));
46  Pair start = events.remove(0);
47  Pair previous=null;
48  System.out.println("\n\n");
49  for (int i = 0; i < events.size(); i++) {
50  Pair p = events.get(i);
51  p.print(start,previous);
52  previous=p;
53  }
54  clear();
55  }
56 
57 
58  public static boolean isEnabled() {
59  return enabled;
60  }
61 
62 
63  public static void setEnabled(boolean enabled) {
65  if(!enabled)
66  clear();
67  else {
68  System.out.println("Start TickToc");
69  tic("Tick Tock start");
70  }
71  }
72 }
static ArrayList< Pair > events
Definition: TickToc.java:30
static void setEnabled(boolean enabled)
Definition: TickToc.java:63
static final DecimalFormat df
Definition: TickToc.java:7
static void tic(String message)
Definition: TickToc.java:32