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 }