什么是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);
}
Run Code Online (Sandbox Code Playgroud)
基本上,我有一段代码具有静态迭代次数(八次),并且当我离开for循环时它确实很糟糕.但是当我手动展开循环时,它确实更好.我有兴趣了解JIT是否实际上展开循环,如果没有,那么为什么.