当我从powf
转换为__powf
时,它可以改善我的性能。但是,如果我将sqrtf
转换为其中一个__fsqrt_[rn,rz,ru,rd]
则会减慢速度。我认为它们应该至少和sqrtf一样快。可能是什么问题?
此致
答案 0 :(得分:2)
如果你需要对一个整数(或浮点数)进行平方,那么你可以将该值与其自身相乘,即代替;
y = powf(x, 2);
使用:
y = x * x;
这避免了使用昂贵的超越函数(及其相关的函数调用开销),并且在大多数情况下只生成单个乘法指令。
平方根可能无法避免,但如果您只需要单精度,则可以使用fsqrtf
而不是sqrtf
- 这通常要快得多。