【发布时间】:2014-06-08 22:40:11
【问题描述】:
我有一个每秒调用数千次的函数(它是一种音频效果),我需要一个用于写入和读取音频数据的缓冲区。将浮点数组声明为普通数组还是向量,在性能上是否存在相当大的差异?
一旦声明,我的数组在音频循环期间不会调整大小,但在初始化阶段我不知道确切的长度,因为它取决于音频采样率。因此,例如,如果我需要一个 2 秒的音频缓冲区来实现 44100 Hz 的采样率,我通常会这样做:
declaration:
int size;
float *buffer;
void init (int sr)
{
size = sr * 2;
buffer = new float[size]();
}
~destroy()
{
delete [] buffer;
}
【问题讨论】:
-
为什么不介绍这两种方法?
-
measure,发布版本
标签: c++ arrays audio optimization vector