【发布时间】:2014-03-01 09:58:02
【问题描述】:
我试图减少这个函数的执行时间,我把执行时间缩短到了
系统:0.001s
有什么办法可以进一步减少这个函数的执行时间?
int function(uint32_t *r, const uint32_t *a, const uint32_t *b, int n)
{
int i;
uint32_t ri, c=0;
for (i = 0; i < n; i ++)
{
ri = a[i] + b[i] + c;
c = ((ri < a[i]) || ((ri == a[i]) && c));
r[i] = ri;
}
return ((int) c);
}
【问题讨论】:
-
嗯,你可以试试循环展开。
-
@n.m. Funny you should ask...
-
如果您知道函数参数从不引用相同的内存(别名),
restrict限定符可能有助于编译器生成更好的代码。 -
执行一个完整函数所花费的时间stackoverflow.com/a/40380118/6180077
标签: c performance optimization profiling