Политика разворачивания петли JIT?

Что такое политика разворачивания цикла для JIT? Или если нет простого ответа на этот вопрос, то можно ли как-то проверить, где/когда происходит разворачивание цикла в цикле?

GNode child = null;
for(int i=0;i<8;i++){
   child = octree.getNeighbor(nn, i, MethodFlag.NONE);
   if(child==null)
      break;
   RecurseForce(leaf, child, dsq, epssq);
}

В принципе, у меня есть кусок кода выше, который имеет статическое число итераций (восемь), и он плохо работает, когда я покидаю цикл как есть. Но когда я вручную разворачиваю цикл, это происходит значительно лучше. Меня интересует, действительно ли JIT делает разворачивание цикла, и если нет, то почему.

8
задан R.K 30 August 2011 в 12:35
поделиться