如何编写100% cache miss的C程序
发布网友
发布时间:2022-04-22 15:11
我来回答
共1个回答
热心网友
时间:2023-11-10 08:51
valgrind在C语言编程中,对程序的性能调试,判断一个程序的代码质量是否高效有很明显的用处。下面具体分析一下:
测试程序的CPU命中率(CPU cache hit/miss rate):
模拟写两个小程序,用来测试CPU的缓存命中率,分别名为cache1.c和cache2.c.
cache1.c代码如下:
点击(此处)折叠或打开
#include <stdio.h>
#define MAXROW 8000
#define MAXCOL 8000
int main () {
int i,j;
static int x[MAXR www.hbbz08.com OW][MAXCOL];
printf ("Starting!\n");
for (i=0;i<MAXROW;i++)
for (j=0;j<MAXCOL;j++)
x[i][j] = i*j;
printf("Completed!\n");
return 0;
}
cache2.c代码如下:
点击(此处)折叠或打开
#include <stdio.h>
#define MAXROW 8000
#define MAXCOL 8000
int main () {
int i,j;
static int x[MAXROW][MAXCOL];
printf ("Starting!\n");
for (j=0;j<MAXCOL;j++)
for (i=0;i<MAXROW;i++)
x[i][j] = i*j;
printf("Completed!\n");
return 0;
}