首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >业绩放缓与业务数量增长

业绩放缓与业务数量增长
EN

Stack Overflow用户
提问于 2010-12-27 20:36:49
回答 2查看 63关注 0票数 0

我有下一个问题。我的代码性能取决于操作的数量!怎么可能呢?(我在openSuse 11.1下使用gcc诉4.3.2 )

这是我的代码:

代码语言:javascript
复制
#define N_MAX 1000000

typedef unsigned int uint;

double  a[N_MAX];
double  b[N_MAX];
uint n;

int main(){


    for (uint i=0; i<N_MAX; i++) {
            a[i]=(double)rand()/RAND_MAX;
    }


    for (uint n=100000; n<500000; n+=5000) {

        uint time1 = time(NULL);

        for (uint i=0; i<n;++i)
            for (uint j=0;j<n;++j)
                    b[j] = a[j]; 

        uint time2 = time(NULL);

        double time = double(time2-time1);

        printf("%5d ", n);
        printf("%5.2f %.3f\n", time, ((double)n*n/time)/1e9);

    }

    return 0;
}

这是结果日志:

N-时间-Gflops (=)

200000 23.00 1.739

205000 24.00 1.751

210000 25.00 1.764

215000 26.00 1.778

220000 27.00 1.793

225000 29.00 1.746

230000 30.00 1.763

235000 32.00 1.726

240000 32.00 1.800

245000 34.00 1.765

250000 36.00 1.736

255000 37.00 1.757

260000 38.00 1.779

265000 40.00 1.756

270000 42.00 1.736

275000 44.00 1.719

280000 46.00 1.704

285000 48.00 1.692

290000 49.00 1.716

295000 51.00 1.706

300000 54.00 1.667

305000 54.00 1.723

310000 59.00 1.629

315000 61.00 1.627

320000 66.00 1.552

325000 71.00 1.488

330000 76.00 1.433

335000 79.00 1.421

340000 84.00 1.376

345000 85.00 1.400

350000 89.00 1.376

355000 96.00 1.313

360000 102.00 1.271

365000 110.00 1.211

370000 121.00 1.131

375000 143.00 0.983

380000 156.00 0.926

385000 163.00 0.909

也有图片,但我不能张贴它造成新用户的限制。但这是测井图

这次放缓的原因是什么?如何摆脱它?请帮助!

EN

回答 2

Stack Overflow用户

发布于 2010-12-27 20:53:03

您的内部循环每次都会增加迭代次数--如果需要进行更多的计算,则需要更多的时间来完成它们的工作。第一次有100 k操作要做,第二次有105 k操作,等等。它只需要越来越多的时间。

编辑:更清楚的是,我试着说它看起来像斯波斯基所说的http://www.joelonsoftware.com/articles/fog0000000319.html

票数 1
EN

Stack Overflow用户

发布于 2010-12-28 13:05:21

非常感谢你的回应!

我的期望基于这样的想法,即每个时间单位的操作数应该保持不变。因此,如果我增加运算的次数,比如说两次,那么计算时间也应该增加两倍,因此运算次数和计算时间的比率应该是恒定的。这是我没见过的东西。:(

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4541649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档