«Оптимизация» сортировки Java 7

В Java6 и быстрая сортировка, и сортировка слиянием использовались в Arrays # sort для массивов примитивов и объектов соответственно. В Java7 они оба изменились на DualPivotQuicksort и Timsort.

В исходном коде для новой быстрой сортировки в нескольких местах (например, в строке 354) появляется следующий комментарий:

 /*
  * Here and below we use "a[i] = b; i++;" instead
  * of "a[i++] = b;" due to performance issue.
  */

Как это проблема производительности? Разве компилятор не сведет их к одному и тому же?

В более широком смысле, какова хорошая стратегия для исследования этого самостоятельно? Я могу запускать тесты, но мне было бы больше интересно проанализировать любые различия в скомпилированном коде. Однако я не знаю, какие инструменты использовать и т. Д.

25
задан Matthew Gilliard 13 July 2011 в 09:29
поделиться