Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error bar isn't centralized #19

Open
danielmenezesbr opened this issue Dec 12, 2018 · 6 comments
Open

Error bar isn't centralized #19

danielmenezesbr opened this issue Dec 12, 2018 · 6 comments

Comments

@danielmenezesbr
Copy link

image

@jzillmann
Copy link
Owner

Hey @danielmenezesbr do you mean vertically centralized ? The error bar shows goes from min to max score (see #11), so thats why it's not symmetric!

@danielmenezesbr
Copy link
Author

Thanks @jzillmann

Perhaps to be clearer it should be documented that the error bar uses min/max score instead of the confidence interval.

@cowwoc
Copy link

cowwoc commented Dec 15, 2018

I agree this isn't the expected or (in my case) desired behavior. I expect to see the 99% confidence interval in decimal format (not integers). I'll give you a concrete example. I just benchmarked two methods:

Result "org.bitbucket.cowwoc.requirements.benchmark.JavaWithoutAssertsTest.requirementsAssertThat":
  8.267 ±(99.9%) 0.647 ns/op [Average]
  (min, avg, max) = (7.281, 8.267, 12.175), stdev = 1.908
  CI (99.9%): [7.620, 8.914] (assumes normal distribution)

Result "org.bitbucket.cowwoc.requirements.benchmark.JavaWithoutAssertsTest.requirementsAssertThatWithAssertsDisabled":
  10.113 ±(99.9%) 0.904 ns/op [Average]
  (min, avg, max) = (6.826, 10.113, 12.389), stdev = 2.667
  CI (99.9%): [9.208, 11.017] (assumes normal distribution)

As you can see, the confidence intervals do not overlap. The second method is faster than the first 99% of the time. Yet when I view this data in the jmh-visualizer the error bars overlap and it's not clear that this is the case.

@jzillmann jzillmann reopened this Dec 20, 2018
@jzillmann
Copy link
Owner

We used the confidence interval for a long time and i was hesitating to change it - see #11.

However i myself and others run into a lot of cases where it wasn't that meaningful. I guess it depends on the benchmarks and its iteration time what is more useful. If you execute a benchmark only for very few times (like 10 iterations and 2 forks), the 99th percentile / confidence interval has normally a big skew...

Maybe it makes sense to make this configurable ?

How are you guys using jmh-visualizer ? The web version ? Gradle ? Or Jenkins ?

@cowwoc
Copy link

cowwoc commented Dec 20, 2018

Web version in my case.

@danielmenezesbr
Copy link
Author

It seems a good idea to make this configurable.

Web version too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants