1
2
3
4
5
6
7
8
9
10
11
12
13
14 package ch.qos.logback.core.contention;
15
16 import ch.qos.logback.core.testUtil.RunnableWithCounterAndDone;
17
18
19
20
21
22
23
24
25
26 public class ThreadedThroughputCalculator extends MultiThreadedHarness {
27
28 public ThreadedThroughputCalculator(long overallDurationInMillis) {
29 super(overallDurationInMillis);
30 }
31
32 public void printThroughput(RunnableWithCounterAndDone[] runnableArray, String msg) throws InterruptedException {
33 printThroughput(runnableArray, msg, false);
34 }
35
36 public void printThroughput( RunnableWithCounterAndDone[] runnableArray, String msg, boolean detailed) throws InterruptedException {
37 long sum = 0;
38 for (RunnableWithCounterAndDone r : runnableArray) {
39 if (detailed) {
40 System.out.println(r + " count=" + r.getCounter());
41 }
42 sum += r.getCounter();
43 }
44
45 System.out.println(msg + "total of " + sum + " operations, or " + ((sum) / overallDurationInMillis)
46 + " operations per millisecond");
47 }
48 }