diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java index 708cf988c5..7f17efab57 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/Benchmark.java @@ -7,7 +7,6 @@ import java.util.Timer; import java.util.TimerTask; import org.jlab.utils.benchmark.BenchmarkTimer.BenchmarkMultiTimer; -import org.jlab.utils.benchmark.BenchmarkTimer.BenchmarkTimerTotal; /** * @@ -74,13 +73,6 @@ public BenchmarkTimer getTimer(String name){ return timerStore.getOrDefault(name, null); } - public BenchmarkTimer getTotal(String name) { - BenchmarkTimerTotal total = new BenchmarkTimerTotal(name); - for (BenchmarkTimer b : timerStore.values()) - total.add(b); - return total; - } - @Override public String toString(){ StringBuilder s = new StringBuilder(); @@ -100,15 +92,20 @@ public String toString(){ s.append(b); s.append(" *\n"); } - s.append("* "); - s.append(getTotal("")); - s.append(" *\n"); s.append(margins); s.append("\n"); } return s.toString(); } + public String[] toCSV() { + return new String[]{ + String.join(",",timerStore.keySet()) + ",TOTAL", + String.join(",",timerStore.values().stream().map(x -> String.valueOf(x.getMillisecondsPerCall())).toList()) + + "," + timerStore.values().stream().mapToDouble(x -> x.getMillisecondsPerCall()).sum() + }; + } + public static void main(String[] args){ Benchmark b = getInstance(); b.printTimer(10); diff --git a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java index 8092d63024..6fbb19be2c 100644 --- a/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java +++ b/common-tools/clas-utils/src/main/java/org/jlab/utils/benchmark/BenchmarkTimer.java @@ -36,16 +36,6 @@ public void reset(){ } } - public static class BenchmarkTimerTotal extends BenchmarkMultiTimer { - ArrayList benchmarks = new ArrayList<>(); - public BenchmarkTimerTotal(String name) { super(name); } - public void add(BenchmarkTimer b) { - benchmarks.add(b); - totalTime.addAndGet(b.totalTime.get()); - numberOfCalls.addAndGet(b.numberOfCalls.get()); - } - } - private String timerName = "generic"; private long timeAtResume = 0; private Boolean isPaused = true; @@ -96,10 +86,10 @@ public double getSeconds(){ @Override public String toString() { return String.format("%-15s : #Calls %12d, Total = %12.2f sec, Unit = %12.3f msec", - getName(), numberOfCalls.get(), getSeconds(), getTimePerCall()); + getName(), numberOfCalls.get(), getSeconds(), getMillisecondsPerCall()); } - public double getTimePerCall() { + public double getMillisecondsPerCall() { return numberOfCalls.get() > 0 ? getMilliseconds() / numberOfCalls.get() : 0; } }