只需稍微修改代码即可计算两个数组的总和
int main()
{
int a[10000]={0}; //initialize something
int b[10000]={0}; //initialize something
int sumA=0, sumB=0;
for(int i=0; i<10000; i++)
{
sumA += a[i];
sumB += b[i];
}
printf("%d %d",sumA,sumB);
}
或
int main()
{
int a[10000]={0}; //initialize something
int b[10000]={0}; //initialize something
int sumA=0, sumB=0;
for(int i=0; i<10000; i++)
{
sumA += a[i];
}
for(int i=0; i<10000; i++)
{
sumB += b[i];
}
printf("%d %d",sumA,sumB);
}
哪个代码会更快。
最佳答案
只有一种方法可以知道,那就是测试和测量。您需要弄清楚瓶颈在哪里(CPU、内存带宽等)。
数组中数据的大小(在您的示例中为 int)会影响结果,因为这会对处理器缓存的使用产生影响。通常,您会发现示例 2 更快,这基本上意味着您的内存带宽是限制因素(示例 2 将以更有效的方式访问内存)。
关于c++ - 哪个会更快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1398855/