如何使C程序负载存储密集?

如何使C程序负载存储密集?,c,C,如何使程序集中进行加载存储,以便有最大的内存引用和可忽略的计算(甚至不包括循环开销!)使用大量的易失性变量,它们存储在内存中,但我不确定这是否回答了您的问题。使用具有大量分散读/写操作的大型阵列来最大化缓存未命中率。如果您的目标是编写一个只练习内存的程序,请在随机选择的索引处将随机值写入数组。使用gcc在此代码上使用-funroll循环: int main (int argc, char** argv) { int a = 5; int b = 10; int c;

如何使程序集中进行加载存储,以便有最大的内存引用和可忽略的计算(甚至不包括循环开销!)

使用大量的
易失性
变量,它们存储在内存中,但我不确定这是否回答了您的问题。

使用具有大量分散读/写操作的大型阵列来最大化缓存未命中率。如果您的目标是编写一个只练习内存的程序,请在随机选择的索引处将随机值写入数组。

使用
gcc
在此代码上使用
-funroll循环

int main (int argc, char** argv) {
    int a = 5;
    int b = 10;
    int c;
    int i;

    while (1) {
        for (i = 0; i <= 2147483647; i++) {
            c = b;
            b = a;
            a = c;
        }
    }

    return 0;
}
int main(int argc,char**argv){
INTA=5;
int b=10;
INTC;
int i;
而(1){

对于(i=0;i在程序的可能输入和可能输出之间建立映射


不过,对输入的计算需要由另一个程序或手动完成。

感谢sharptooth,我总是写retrun而不是return。嘿,thnks a tong…有什么方法可以刷新缓存吗?没有听说过,如果有,它依赖于平台。不过你并不真的需要它-分散的内存访问确实有用独立完成这项工作。