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

时间:2009-05-25 05:44:03

标签: c

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

4 个答案:

答案 0 :(得分:2)

gcc在此代码上使用-funroll-loops

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

答案 1 :(得分:1)

使用具有大量分散读/写的大型数组来最大化缓存未命中。如果你的目标是编写一个只运行内存的程序 - 在随机选择的索引中将随机值写入数组。

答案 2 :(得分:0)

使用大量volatile个变量,这些变量存储在内存中,但我不确定这是否能解答您的问题。

答案 3 :(得分:0)

在程序的可能输入和可能的输出之间制作地图。

输出的计算需要由另一个程序或手工完成。