3
int sumarrayrows(int a[M][N])
{
    int i, j, sum = 0;
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
            sum += a[i][j];
    return sum;
}

キャッシュフレンドリーなコードのミス率を見つける方法を考えていました。キャッシュまたはキャッシュブロックのサイズを測定する場合は、そのサイズを見つける方法を調べます。

更新ミス率を見つける方法を見つけました

これは4バイトを使用するため、ミス率が25%になる可能性がありますa [0] = M a [1] = H a [2] = H a [3] = H

4

1 に答える 1

0

プラットフォームによって異なります。最近のほとんどのCPUには、キャッシュミスをカウントするために使用できる可能性のあるハードウェアパフォーマンスカウンターがありますが、これらへのアクセスは厄介な場合があります。たとえば、Windowsは通常、カーネルモードのドライバーを作成することを想定しています。

適切なパフォーマンス分析ソフトウェアを入手して、それを介してコードを実行する方がよい場合があります。

于 2012-12-03T21:08:37.807 に答える