Author: sebb Date: Thu Mar 11 22:57:58 2010 New Revision: 922054 URL: http://svn.apache.org/viewvc?rev=922054&view=rev Log: Correct calculation of min, max and std. deviation for aggregated samples
Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/Calculator.java Modified: jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/Calculator.java URL: http://svn.apache.org/viewvc/jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/Calculator.java?rev=922054&r1=922053&r2=922054&view=diff ============================================================================== --- jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/Calculator.java (original) +++ jakarta/jmeter/trunk/src/core/org/apache/jmeter/util/Calculator.java Thu Mar 11 22:57:58 2010 @@ -73,11 +73,19 @@ public class Calculator { private void addValue(long newValue, int sampleCount) { count += sampleCount; - minimum=Math.min(newValue, minimum); - maximum=Math.max(newValue, maximum); double currentVal = newValue; sum += currentVal; - sumOfSquares += currentVal * currentVal; + if (sampleCount > 1){ + minimum=Math.min(newValue/sampleCount, minimum); + maximum=Math.max(newValue/sampleCount, maximum); + // For n values in an aggregate sample the average value = (val/n) + // So need to add n * (val/n) * (val/n) = val * val / n + sumOfSquares += (currentVal * currentVal) / (sampleCount); + } else { + minimum=Math.min(newValue, minimum); + maximum=Math.max(newValue, maximum); + sumOfSquares += currentVal * currentVal; + } // Calculate each time, as likely to be called for each add mean = sum / count; deviation = Math.sqrt((sumOfSquares / count) - (mean * mean)); --------------------------------------------------------------------- To unsubscribe, e-mail: jmeter-dev-unsubscr...@jakarta.apache.org For additional commands, e-mail: jmeter-dev-h...@jakarta.apache.org