Java 7 classificando “otimização”

No Java6, quicksort e mergesort foram usados emArrays#sort, para matrizes primitivas e de objeto, respectivamente. No Java7, ambos mudaram para DualPivotQuicksort e Timsort.

Na fonte do novo quicksort, o seguinte comentário aparece em alguns lugares (por exemplo, linha 354):

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

Como isso é um problema de desempenho? O compilador não irá reduzi-los para a mesma coisa?

De maneira geral, qual é uma boa estratégia para investigar isso eu mesmo? Posso executar benchmarks, mas estaria mais interessado em analisar as diferenças no código compilado. No entanto, não sei quais ferramentas usar etc.

questionAnswers(3)

yourAnswerToTheQuestion