我百度cache优化的时候看到百度这样说的:
变量申明时cache对齐
只有内存地址被2,4,8或16整除的位置是cache优化的。
因此,申明数组变量时,力求每个数组内成员是cache独立的,不碰撞的。
可以如下申明: int a[1024 + 32],b[1024 + 32]; 这要比 int a[1024],b[1024]效率高许多
我的疑问是 1024 不也能被16整除吗,为什么+32会更好。。。
我百度cache优化的时候看到百度这样说的:
变量申明时cache对齐
只有内存地址被2,4,8或16整除的位置是cache优化的。
因此,申明数组变量时,力求每个数组内成员是cache独立的,不碰撞的。
可以如下申明: int a[1024 + 32],b[1024 + 32]; 这要比 int a[1024],b[1024]效率高许多
我的疑问是 1024 不也能被16整除吗,为什么+32会更好。。。