给予代码:循环展开和优化
for (int i = 0; i < n; ++i)
{
A(i) ;
B(i) ;
C(i) ;
}
而优化的版本:
for (int i = 0; i < (n - 2); i+=3)
{
A(i)
A(i+1)
A(i+2)
B(i)
B(i+1)
B(i+2)
C(i)
C(i+1)
C(i+2)
}
东西是我不明白:这是更好?使用其他版本看不到任何更快的工作。我在这里错过了什么吗?
所有我看到的是,每一个指令根据之前的指令,这意味着 我需要等待前一指令将在以开始一前一后完成...
感谢
哪种语言? – Bytemain 2012-04-09 22:00:44
维基百科有一篇很好的文章,介绍循环展开后的想法,以了解它的价值:http://en.wikipedia.org/wiki/Loop_unwinding – 2012-04-09 22:02:00
一般而言,这些并不等同。应该是A(i);双); C(I); A(I + 1); B(I + 1);等等。 – gnasher729 2014-06-10 21:43:15