分配给阵列的成本

时间:2013-05-09 19:19:25

标签: arrays performance

我有一个看起来像这样的程序:

int i;

double* a = new double [2];

for(i=0;i<1000000;i++)
{
    a[0] = 1.1231;
    a[0] = 1.1231;
    a[0] = 1.1231;
    ..
}

a [0]行= 1.1231;已手动复制10.000次,因此该命令被称为10.000.000.000次。这需要8.7秒才能运行。但是,如果我运行循环10.000.000次并手动复制语句1.000次(也就是相同数量的数组赋值,只是不同的布局),我得到3秒的运行时间。怎么会这样?我正在使用-O0进行编译。我需要做些什么才能禁用编译器优化?我问,因为我正在优化一个程序,我正在比较不同容器的性能......

谢谢!

0 个答案:

没有答案