You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by up...@apache.org on 2019/01/03 19:45:05 UTC
[geode-benchmarks] branch develop updated: Adding additional
metrics of standard error
This is an automated email from the ASF dual-hosted git repository.
upthewaterspout pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git
The following commit(s) were added to refs/heads/develop by this push:
new ccac4cd Adding additional metrics of standard error
ccac4cd is described below
commit ccac4cd54da42a83233faf6712932c6a7c9b6f84
Author: Dan Smith <ds...@pivotal.io>
AuthorDate: Thu Jan 3 11:44:59 2019 -0800
Adding additional metrics of standard error
Adding additional metrics of standard error
---
.../yardstick/analysis/YardstickHdrHistogramParser.java | 2 ++
.../analysis/YardstickThroughputSensorParser.java | 16 +++++++++++++++-
.../perftest/analysis/BenchmarkRunAnalyzerTest.java | 4 ++++
3 files changed, 21 insertions(+), 1 deletion(-)
diff --git a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java
index 19d1749..a52ba4a 100644
--- a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java
+++ b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickHdrHistogramParser.java
@@ -64,6 +64,8 @@ public class YardstickHdrHistogramParser implements ProbeResultParser {
results.add(new ResultData("99.9th percentile latency", histogram.getValueAtPercentile(99.9)));
results.add(new ResultData("average latency", histogram.getMean()));
results.add(new ResultData("latency standard deviation", histogram.getStdDeviation()));
+ results.add(new ResultData("latency standard error",
+ histogram.getStdDeviation() / Math.sqrt(histogram.getTotalCount())));
return results;
}
diff --git a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java
index ff084b8..c873c8c 100644
--- a/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java
+++ b/harness/src/main/java/org/apache/geode/perftest/yardstick/analysis/YardstickThroughputSensorParser.java
@@ -60,7 +60,12 @@ public class YardstickThroughputSensorParser implements ProbeResultParser {
@Override
public List<ResultData> getProbeResults() {
List<ResultData> results = new ArrayList<>(1);
- results.add(new ResultData(probeResultDescription, getAverageThroughput()));
+ double averageThroughput = getAverageThroughput();
+ double standardDeviation = getStandardDeviation(averageThroughput);
+ double standardError = standardDeviation / Math.sqrt(datapoints.size());
+ results.add(new ResultData(probeResultDescription, averageThroughput));
+ results.add(new ResultData("ops/second standard error", standardError));
+ results.add(new ResultData("ops/second standard deviation", standardDeviation));
return results;
}
@@ -73,6 +78,15 @@ public class YardstickThroughputSensorParser implements ProbeResultParser {
return accumulator / datapoints.size();
}
+ public double getStandardDeviation(double average) {
+ double accumulator = 0;
+ for (SensorDatapoint datapoint : datapoints) {
+ double deviation = datapoint.opsPerSec - average;
+ accumulator += deviation * deviation;
+ }
+ return Math.sqrt(accumulator / (datapoints.size() - 1));
+ }
+
private static class SensorDatapoint {
private int second;
private double opsPerSec;
diff --git a/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java b/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java
index 57609f7..61a9de9 100644
--- a/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java
+++ b/harness/src/test/java/org/apache/geode/perftest/analysis/BenchmarkRunAnalyzerTest.java
@@ -135,9 +135,13 @@ public class BenchmarkRunAnalyzerTest {
BenchmarkRunResult expectedBenchmarkResult = new BenchmarkRunResult();
BenchmarkRunResult.BenchmarkResult resultA = expectedBenchmarkResult.addBenchmark("BenchmarkA");
resultA.addProbeResult(YardstickThroughputSensorParser.probeResultDescription, 25, 20);
+ resultA.addProbeResult("ops/second standard error", 2.36, 2.36);
+ resultA.addProbeResult("ops/second standard deviation", 7.45, 7.45);
resultA.addProbeResult(YardstickPercentileSensorParser.probeResultDescription, 200, 300);
BenchmarkRunResult.BenchmarkResult resultB = expectedBenchmarkResult.addBenchmark("BenchmarkB");
resultB.addProbeResult(YardstickThroughputSensorParser.probeResultDescription, 20, 25);
+ resultB.addProbeResult("ops/second standard error", 2.36, 2.77);
+ resultB.addProbeResult("ops/second standard deviation", 7.45, 10.38);
resultB.addProbeResult(YardstickPercentileSensorParser.probeResultDescription, 400, 400);
assertEquals(expectedBenchmarkResult, results);
}