音频 - 通过使用缓冲区减少函数调用,我可以期待多少性能改进?

时间:2010-03-23 17:42:02

标签: audio

我正在为iPhone制作音频密集型应用。我正在为我需要计算的每个样本调用许多不同的函数。例如,我有一个信封类。当我计算样本时,我会做类似的事情:

sampleValue = oscilator->tic() * envelope->tic();

但我也可以这样做:

for(int i = 0; i < bufferLength; i++){
   buffer[i] = oscilatorBuffer[i] * evelopeBuffer[i];
}

我知道第二个会更有效率,但不知道多少。函数调用是否足够昂贵,如果我关心事件的性能,我会疯狂不使用缓冲区吗?

2 个答案:

答案 0 :(得分:1)

只想两个想法:

  1. 函数调用非常便宜。
  2. 在谈论表演时,没有什么比实验更好。

答案 1 :(得分:0)

您可以使所有当前功能inline,并比较性能。