[ 
https://issues.apache.org/jira/browse/SLING-2361?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13185516#comment-13185516
 ] 

Felix Meschberger edited comment on SLING-2361 at 1/16/12 3:28 PM:
-------------------------------------------------------------------

We could inline but the dependencies are tremendous (kind of) and the 
replacement code is dead simple:

Assume three helper variables

   n -- number of samples (request durations)
   sumX -- sum of all samples
   sumX2 -- sum of all samples squared

Then the following formula apply:

  mean = sumX / n
  stddev = sqrt( (sumX2 - sumX * sumX / n) / (n - 1) );

The formula for the stddev is taken from (german) 
http://de.wikipedia.org/wiki/Standardabweichung section "Berechnung für 
auflaufende Messwerte"

                
      was (Author: fmeschbe):
    We could inline but the dependencies are tremendous (kind of) and the 
replacement code is dead simple:

        double delta = value - this.mean;
        this.mean = this.mean + delta / this.n;
        if (n > 1) {
            this.m2 += delta * (value - this.mean);
        }
        this.sigma = this.m2 / this.n;

Where this.m2 is a helper variable, this.mean is the cumulated mean value and 
this.sigma is the cumulated variance.
                  
> Drop commons.math dependency
> ----------------------------
>
>                 Key: SLING-2361
>                 URL: https://issues.apache.org/jira/browse/SLING-2361
>             Project: Sling
>          Issue Type: Improvement
>          Components: Engine
>            Reporter: Felix Meschberger
>            Assignee: Felix Meschberger
>             Fix For: Engine 2.2.6
>
>
> As of Rev. 1138159 (SLING-1476) the RequestProcessorMBeanImpl exists to 
> convey Sling request processing statistics. For the mean and variance values 
> the Commons Math SynchronizedSummaryStatistics class is used.
> IMHO this is quite a heavy dependency for such a simple computation (well, 
> the mathematics behind this are not simple, at least not to me ;-) ). So I 
> suggest we in lie a simple continuously updating algorithm into the 
> addRequestDuration method, which is modified to be synchronized.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to