Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[jetty-dev] Re: Statistics - non synchronized standard deviation?

Hi,

On Mon, Feb 15, 2010 at 08:09, Greg Wilkins <gregw@xxxxxxxxxxx> wrote:
>
> Michael & Simone,
>
> I've been looking at the work Michael has done on
>
>  https://bugs.eclipse.org/bugs/show_bug.cgi?id=302018
>
> and relating it to the work previously done by Simone on
> evaluating the benefits of making stats collection non
> blocking.
>
> Simone found that even with a 2 CPU machine, there
> was significant benefit in using AtomicLongs etc
> rather than synchronizing to keep the stats correct.
> Simone - can you remember how significant the
> performance increase was?

I think I did that comparison for the bayeux load client (which also
collected stats) and the result was that it was far more stable and
faster.
I don't have a ratio number though.

Regarding std deviation, I think it's an interesting mathematical
thing, but not that useful from the point of view of the user.
The std deviation is useful to understand how spreaded are your
samples; so you can say, for example, that 68.2% of the values are
within the mean +/- 1 std dev, and that 95.6 are within the mean +/- 2
std devs.
But that holds true only if you have a normal distribution, which you
normally don't.

Also, we measure times, which are always 0-bounded, so we're more
interested in one side only of the distribution curve (we don't care
how close to 0 the times are, but we care how *far* they are).

So I think it's more useful that we provide a 75% and/or 90% results,
or maybe a JMX method that takes a time and returns the percentage of
samples within that time, because it is more meaningful to the users.
But then we have to store all samples, which is a bit more memory
consuming (depending on the bucket granularity).

All to say that I don't think std dev gives any useful information:
you read its value but you cannot understand if it's "big", "good" or
anything else.

Simon
-- 
http://bordet.blogspot.com
---
Finally, no matter how good the architecture and design are,
to deliver bug-free software with optimal performance and reliability,
the implementation technique must be flawless.   Victoria Livschitz


Back to the top