3 /**************************************************************************
5 * Java Grande Forum Benchmark Suite - Version 2.0 *
9 * Java Grande Benchmarking Project *
13 * Edinburgh Parallel Computing Centre *
15 * email: epcc-javagrande@epcc.ed.ac.uk *
18 * This version copyright (c) The University of Edinburgh, 1999. *
19 * All rights reserved. *
21 **************************************************************************/
25 public class JGFTimer {
30 public double opcount;
34 private long start_time;
37 public JGFTimer(String name, String opname){
44 public JGFTimer(String name, String opname, int size){
51 public JGFTimer(String name){
61 if (on) System.out.println("Warning timer " + name + " was already turned on");
63 start_time = System.currentTimeMillis();
68 time += (double) (System.currentTimeMillis()-start_time) / 1000.;
69 if (!on) System.out.println("Warning timer " + name + " wasn't turned on");
74 public void addops(double count){
86 // System.out.println("name="+name);
87 // System.out.println("opcount="+opcount);
88 // System.out.println("time="+time);
92 return opcount / time;
95 public void longprint(){
96 System.out.println("Timer Calls Time(s) Performance("+opname+"/s)");
97 System.out.println(name + " " + calls + " " + time + " " + this.perf());
101 if (opname.equals("")) {
102 System.out.println(name + " " + time + " (s)");
108 System.out.println(name + ":SizeA" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
109 } else if (size == 1) {
110 System.out.println(name + ":SizeB" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
111 } else if (size == 2) {
112 System.out.println(name + ":SizeC" + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
114 System.out.println(name + "\t" + (long)time + " (s) \t " + (long)this.perf() + "\t" + " ("+opname+"/s)");
120 // System.out.println(name + ":SizeA" + "\t" + time + " (s) \t " + (float)this.perf() + "\t"
121 // + " ("+opname+"/s)");
124 // System.out.println(name + ":SizeB" + "\t" + time + " (s) \t " + (float)this.perf() + "\t"
125 // + " ("+opname+"/s)");
128 // System.out.println(name + ":SizeC" + "\t" + time + " (s) \t " + (float)this.perf() + "\t"
129 // + " ("+opname+"/s)");
132 // System.out.println(name + "\t" + time + " (s) \t " + (float)this.perf() + "\t"
133 // + " ("+opname+"/s)");
141 public void printperf(){
146 // pad name to 40 characters
147 while ( name.length() < 40 ) name = name + " ";
149 System.out.println(name + "\t" + (float)this.perf() + "\t"
150 + " ("+opname+"/s)");