小编Joh*_*per的帖子

C++ for 循环太慢

我正在尝试使用 PortAudio 制作音频应用程序。我的回调函数一直很慢,它一直在造成不断的欠载。我一一删除了回调中的所有内容,直到找到问题:for 循环。我删除了所有内容,以便回调函数中唯一发生的事情是 for 循环,它仍然导致欠载。我知道这是 for 循环,因为当我减少迭代次数时,欠载就会消失。

static int patestCallback(const void *inputBuffer, void *outputBuffer,
                      unsigned long framesPerBuffer,
                      const PaStreamCallbackTimeInfo *timeInfo,
                      PaStreamCallbackFlags statusFlags, void *userData)
{
    int x = 0;
    for (int jj = 0; jj < 10000; jj++)
    {
        x++; // for testing, not actually used
    };
    return paContinue;
}
Run Code Online (Sandbox Code Playgroud)

这是我用于测试的完整代码: https //gist.github.com/johnroper100/b87641f5609dbb49bc3c1121b1f4daf1

这个问题并不是真正必要的,但我在 python 等价物 (sounddevice) 中做了相同的回调并且没有问题。

c++ callback portaudio

1
推荐指数
1
解决办法
585
查看次数

标签 统计

c++ ×1

callback ×1

portaudio ×1