gpt4 book ai didi

c - 如何找到缓存友好代码中的未命中率?

转载 作者:行者123 更新时间:2023-12-02 16:20:45 25 4
gpt4 key购买 nike

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;
}

我想知道如何找到任何缓存友好代码的未命中率,并测量缓存或缓存 block 的大小(如果是的话)如何找到它的大小。

更新我想出了如何找到错过率

因为这使用了 4 个字节会有 25% 的机会出现失误 a[0] = M a[1] = H a[2] = H a[3] = H

最佳答案

取决于您的平台。大多数现代 CPU 都有硬件性能计数器,可用于计算缓存未命中次数,但访问这些计数器可能会很困难。例如,Windows 通常希望您编写内核模式驱动程序。

您最好获得一些不错的性能分析软件并通过它运行您的代码。

关于c - 如何找到缓存友好代码中的未命中率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13691334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com