-1
float process(float in) {
float out = in;
for (int i = 0; i < 31; ++i) {
if (biquads_[i]) {
out = biquads_[i]->filter(out);
}
}
return out;
}
biquads_
是std::optional<Biquad>[31]
。
在这种情况下,我检查每个可选项以检查它是否为空,然后调用biquad的过滤函数,如果我无条件地调用过滤函数,将其改为乘以1或仅返回输入值,更高效?
你能详细说明一下吗?如果我无条件地调用过滤函数,改变它乘以1或者只是返回输入值,会更有效率吗?*更多? – NathanOliver
我没有任何数字来支持它,但我会说性能会非常相似,而且你现在做的方式比替代方式更清晰。 –
通过显示编译器为这两种情况生成的汇编语言,可以更好地了解性能。 –