Search code examples
javajmh

Understanding JMH Output


So I ran a JMH Benchmark over a few methods and got response like this:

enter image description here

I am not able to understand what exactly the Score and Error values signify.

Is there some reference documentation available for the same?


Solution

  • As an example, ss_stream with parameters n=100000 took ca. 1,363 microseconds to run on average over 30 iterations (and was run a number of times in each of these iterations, depending on the length of each iteration).

    Assuming that the results are normally distributed, for that sample size, one would expect that the "true" execution time for that method has a 99.9% probability to be somewhere between 1,362.752 - 126.340 microseconds and 1,362.752 + 126.340 microseconds, i.e. between ca. 1,236 and 1,489.

    As far as I know, the main documentation is in the samples. The second one gives information about the various benchmark modes.