Mercurial > repos > rliterman > csp2
annotate CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/opt/bbmap-39.01-1/current/shared/Timer.java @ 68:5028fdace37b
planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author | jpayne |
---|---|
date | Tue, 18 Mar 2025 16:23:26 -0400 |
parents | |
children |
rev | line source |
---|---|
jpayne@68 | 1 package shared; |
jpayne@68 | 2 |
jpayne@68 | 3 import java.io.PrintStream; |
jpayne@68 | 4 import java.util.Locale; |
jpayne@68 | 5 |
jpayne@68 | 6 public class Timer { |
jpayne@68 | 7 |
jpayne@68 | 8 public Timer(){this(System.err, true);} |
jpayne@68 | 9 |
jpayne@68 | 10 public Timer(String s){ |
jpayne@68 | 11 this(System.err, true); |
jpayne@68 | 12 if(outstream!=null){outstream.println(s);} |
jpayne@68 | 13 } |
jpayne@68 | 14 |
jpayne@68 | 15 public Timer(PrintStream outstream_, boolean addTab_){ |
jpayne@68 | 16 outstream=outstream_; |
jpayne@68 | 17 addTab=addTab_; |
jpayne@68 | 18 start(); |
jpayne@68 | 19 } |
jpayne@68 | 20 |
jpayne@68 | 21 public long start(String s){ |
jpayne@68 | 22 if(outstream!=null){outstream.println(s);} |
jpayne@68 | 23 return start(); |
jpayne@68 | 24 } |
jpayne@68 | 25 |
jpayne@68 | 26 public long stopAndPrint(){ |
jpayne@68 | 27 long x=stop(); |
jpayne@68 | 28 if(outstream!=null){outstream.println(this);} |
jpayne@68 | 29 return x; |
jpayne@68 | 30 } |
jpayne@68 | 31 |
jpayne@68 | 32 public long stop(String s){ |
jpayne@68 | 33 long x=stop(); |
jpayne@68 | 34 if(addTab && s!=null && !s.endsWith("\t")){s=s+"\t";} |
jpayne@68 | 35 if(outstream!=null){outstream.println(s+this);} |
jpayne@68 | 36 return x; |
jpayne@68 | 37 } |
jpayne@68 | 38 |
jpayne@68 | 39 public long start(){ |
jpayne@68 | 40 time1=time2=System.nanoTime(); |
jpayne@68 | 41 elapsed=0; |
jpayne@68 | 42 return time1; |
jpayne@68 | 43 } |
jpayne@68 | 44 |
jpayne@68 | 45 public long stop(){ |
jpayne@68 | 46 time2=System.nanoTime(); |
jpayne@68 | 47 elapsed=time2-time1; |
jpayne@68 | 48 return time2; |
jpayne@68 | 49 } |
jpayne@68 | 50 |
jpayne@68 | 51 @Override |
jpayne@68 | 52 public String toString(){ |
jpayne@68 | 53 return timeInSeconds(3)+" seconds."; |
jpayne@68 | 54 } |
jpayne@68 | 55 |
jpayne@68 | 56 public String timeInSeconds(int decimals) { |
jpayne@68 | 57 return String.format(Locale.ROOT, "%."+decimals+"f", timeInSeconds()); |
jpayne@68 | 58 } |
jpayne@68 | 59 |
jpayne@68 | 60 public double timeInSeconds() { |
jpayne@68 | 61 return elapsed/1000000000d; |
jpayne@68 | 62 } |
jpayne@68 | 63 |
jpayne@68 | 64 public long time1; |
jpayne@68 | 65 public long time2; |
jpayne@68 | 66 /** in nanos */ |
jpayne@68 | 67 public long elapsed; |
jpayne@68 | 68 |
jpayne@68 | 69 public PrintStream outstream=System.err; |
jpayne@68 | 70 public boolean addTab=true; |
jpayne@68 | 71 } |