2中哪一个更快(C++)?
for(i=0; i<n; i++)
{
sum_a = sum_a + a[i];
sum_b = sum_b + b[i];
}
Run Code Online (Sandbox Code Playgroud)
要么
for(i=0; i<n; i++)
{
sum_a = sum_a + a[i];
}
for(i=0; i<n; i++)
{
sum_b = sum_b + b[i];
}
Run Code Online (Sandbox Code Playgroud)
我是初学者,所以我不知道这是否有意义,但在第一个版本中,数组'a'被访问,然后是'b',这可能导致许多内存开关,因为数组'a'和'b'在不同的记忆位置.但是在第二个版本中,首先访问整个数组'a',然后访问整个数组'b',这意味着访问连续的内存位置而不是在两个数组之间交替.
这两个版本的执行时间(即使是非常微不足道的版本)之间有什么不同吗?
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |