这里 是一份 C++ 混响算法的实现,修正掉索引下溢 BUG 后大概是这样:
1 | size_t samples = file.file_size / 4; |
在我的 Intel i7-7700 4 核机器上,混响一段 60s、单声道、float 采样的 pcm 音频需要 12452 ms 的时间。
这里 是一份 C++ 混响算法的实现,修正掉索引下溢 BUG 后大概是这样:
1 | size_t samples = file.file_size / 4; |
在我的 Intel i7-7700 4 核机器上,混响一段 60s、单声道、float 采样的 pcm 音频需要 12452 ms 的时间。
C++17 终于把并行计算引入到了 STL,且更新成本极低,只是把 大多数迭代算法函数 多加了一个并行版本的重载,实现了并行、并发两个维度上的性能优化。
比如,对一组数据做一个加倍的 transform:
1 | std::transform(std::execution::seq, iter_begin, iter_end, output_iter, [](int val) { return val * 2; }); |