是否有任何函数/实用程序/工具可以解除给定数字的循环(n次迭代)。 (Java语言)
例如: 该实用程序在下一个循环中展开3次:
for(int i=0; i<10; i++){
int k = k + 1;
}
tansformed代码必须是:
k = k + 1;
k = k + 1;
k = k + 1;
for(int i=3; i<10; i++){
int k = k + 1;
}
由于 伊塔马尔。
答案 0 :(得分:2)
可能没有;即使他们是,它也没有任何用处。
JIT 将在估计它有益时执行循环展开(至少Oracle JVM&#39; JIT会这样做)。在其他优化中。
编写明显正确的代码并让JVM处理优化。无论如何,JIT比你聪明。在我之后重复:JIT比你聪明;)
答案 1 :(得分:0)
可以使用面向Acpect的编程。
http://en.wikipedia.org/wiki/Aspect-oriented_programming
但这很棘手,我认为这对有经验的程序员来说是一份工作。
使用AOP,您可以定义在编译过程开始时应用于源代码的规则,例如手动展开。
但是,JIT-Compiler也可能会在运行时动态展开这种类型的优化。