Your benchmark is sorting the global input slice in place, so you are benchmarking the sorting of already sorted arrays. Bubble-sort is very effective on already sorted arrays, but I'd say the algorithm with empty code would be even more efficient.
You should check what you actually want to benchmark.
Rémy.
Look at my sortingo package [1] which has implementations of various sorting algorithms. While it doesn't include bubble sort (because it really is a terrible sort),
it does provide a test bed for comparing the sorts. In addition to the usual sorts there is burstsort, which didn't perform nearly as we'll as my Java implementation. I think that has a lot to do with the garbage collector.