关于循环嵌套的一些疑问
一般在程序设计中,对于多层循环嵌套,我们都是提倡在多重循环中,应将最忙的循环放在最内层.但是这些天看<<代码大全>>的599页 谈到导致许多缺页中断的初始化循环(有关性能提高)的部分.有这么一段
原例子:
for (column = 0; column < MAX_COLUMNS; column++)
{
for (row = 0; row < MAX_ROWS; row++)
{
table[row][column] = BlankTableElement()'
}
}
优化后:
for (row = 0; row < MAX_ROWS; row++)
{
for (column = 0; column < MAX_COLUMNS; column++)
{
table[row][column] = BlankTableElement()'
}
}
据说可以在内存不足的系统提高优化前1000倍的运行速度.而在内存充足的系统也会有2倍的速度提高
这样其实就等于把最忙的循环行循环放到了最外面.所以有些不明白.希望对此理解深刻的朋友给个解释.
原例子:
for (column = 0; column < MAX_COLUMNS; column++)
{
for (row = 0; row < MAX_ROWS; row++)
{
table[row][column] = BlankTableElement()'
}
}
优化后:
for (row = 0; row < MAX_ROWS; row++)
{
for (column = 0; column < MAX_COLUMNS; column++)
{
table[row][column] = BlankTableElement()'
}
}
据说可以在内存不足的系统提高优化前1000倍的运行速度.而在内存充足的系统也会有2倍的速度提高
这样其实就等于把最忙的循环行循环放到了最外面.所以有些不明白.希望对此理解深刻的朋友给个解释.
浙公网安备 33010602011771号