Что такое политика разворачивания цикла для 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 делает разворачивание цикла, и если нет, то почему.