There don't seem to be significant differences between the algorithms. What's usually the most relevant number is 'total', which is the total time spent by the CPU on running your code. These are all pretty close to each other.
The difference between Benchmark.bm
and Benchmark.bmbm
is that the latter runs the benchmark, throws away the result, then runs it again and returns this second run's results. The reason to do this is to avoid unfair disadvantage to some of the subjects: it is possible that there exist common resources between the subjects that only one of them needs to initialize, and with bmbm
you have a better chance that everything will be in a 'warm' state and thus obtain a fair result.