C 要提高缓存命中率,如何修改程序
更改程序以提高缓存命中率,并编写修改后的程序。此外,对于(a)中的相同缓存(8字块大小),计算数据缓存未命中率 这是我的任务 如何修改此代码C 要提高缓存命中率,如何修改程序,c,C,更改程序以提高缓存命中率,并编写修改后的程序。此外,对于(a)中的相同缓存(8字块大小),计算数据缓存未命中率 这是我的任务 如何修改此代码 int a[1024], b[1024], c[1024], d[1024]; void main(){ int s=0; for(int i=0; i<1024; ++i){ s += a[i]*b[i]+c[i]*d[i]; } } inta[1024]、b[1024]、c[1024]、d[1024]; void
int a[1024], b[1024], c[1024], d[1024];
void main(){
int s=0;
for(int i=0; i<1024; ++i){
s += a[i]*b[i]+c[i]*d[i];
}
}
inta[1024]、b[1024]、c[1024]、d[1024];
void main(){
int s=0;
对于(int i=0;i,一个基本的改进是使用一个struct数组:
struct ABCD
{
int a;
int b;
int c;
int d;
}
ABCD v[1024];
void main()
{
int s=0;
for(int i=0; i<1024; ++i)
{
s += v[i].a*v[i].b+v[i].c*v[i].d;
}
}
(我注意到C标签,而不是C++。所以,结构声明中可能有一个缺失的补丁)
请正确地格式化代码。等等,那么在前四次访问之后,您认为会发生什么?
void main()
{
int s=0;
for(int i=0; i<1024; ++i)
{
s += a[i]*b[i];
}
for(int i=0; i<1024; ++i)
{
s += c[i]*d[i];
}
}