-1
考慮下面的代碼:緩存未命中?我怎麼能看到?
for (int i=0; i<n; i++)
{
counter += myArray[i];
}
,循環展開版本:
for (int i=0; i<n; i+=4)
{
counter1 += myArray[i+0];
counter2 += myArray[i+1];
counter3 += myArray[i+2];
counter4 += myArray[i+3];
}
total = counter1+ counter2 + counter3+ counter4;
- 爲什麼我們在第一個版本高速緩存未命中?
- 第二個版本的確比第一個版本有更好的表現嗎?爲什麼?
問候
是什麼讓你認爲存在的第一個版本高速緩存未命中? – templatetypedef 2012-04-08 19:40:08
我不知道還會有差別很大...... – 2012-04-08 19:40:10
氣味像功課太多... – m0skit0 2012-04-08 19:40:13