推测性评估(又名推测性执行)是一种以偶尔返工(低效率)为代价实现低延迟代码的有效方法。推测评估是现代计算机体系结构的一种常见的低级技术,但它可以在更高级别的编程模型(参见时间扭曲协议、时间逻辑、反应式编程模型)中得到支持。
一个似乎推测性评估特别有用的地方是音频的实时计算,例如用于实时编码或游戏。这个想法很简单:我们可以推测性地填充音频缓冲区以防止缓冲区欠载,但如果我们必须对任何最后即时更改做出反应,则偶尔会纠正这些缓冲区。这种技术仍然可能出现故障。零散的更新可能会从前面砍掉一点。但是由于大多数推测的声音应该仍然大部分是正确的,因此与典型的欠载相比,这是一种不同的 - 并且可能更优雅的故障模式。
现在,我想知道哪些音频 API 或库最有效地支持这些对现有缓冲区的最后即时更新。我不是声音编程方面的专家,但我见过的大多数示例代码似乎都假定了对缓冲区的承诺。如果我在加载缓冲区后承诺使用缓冲区,那么别无选择,只能在延迟和欠载风险之间进行权衡。哪些音频 API 不需要承诺?