public void displayStatistics(Sample[] samples, int threadNo) {
long start = Long.MAX_VALUE;
long finish = 0;
Mean mean = new Mean();
StandardDeviation stdDev = new StandardDeviation();
Skewness skewness = new Skewness();
int n = 0;
for(Sample sample: samples) {
if (threadNo == -1 || threadNo == sample.threadId) {
n++;
if (sample.timestamp < start) {
start = sample.timestamp;
}
if (sample.timestamp + sample.duration > finish) {
finish = sample.timestamp + sample.duration;
}
mean.increment(sample.duration);
stdDev.increment(sample.duration);
skewness.increment(sample.duration);
}
}
double throughPut = (double)n * (double)TimeUnit.SECONDS.toNanos(1) / (double)(finish - start);
System.out.println(String.format("Mean(NS) %.1f", mean.getResult()));
System.out.println(String.format("StdDev(NS) %.1f", stdDev.getResult()));
System.out.println(String.format("Skew(NS) %.1f", skewness.getResult()));
System.out.println(String.format("Throughput %.1f", throughPut));
System.out.println(String.format("Total time %.3f", (finish - start) / (double)TimeUnit.SECONDS.toNanos(1)));
}