Javascript 什么';时间长有什么害处?

Javascript 什么';时间长有什么害处?,javascript,delay,web-audio-api,Javascript,Delay,Web Audio Api,我正在构建一个使用多个延迟节点的实时循环应用程序。我通过将maxDelayTime设置为略长于delayTime来初始化延迟节点,因为这样做似乎是正确的。我不知道这是否真的有什么不同,但将maxDelayTime设置为3分钟似乎是浪费时间,而我只需要10-15秒的延迟 但是,我希望用户能够调整循环的大小,这就是我遇到的问题。如果用户希望循环更小,我可以将delayTime设置为更小的数字,这一切都很好。但是,用户不能使循环变大,因为不能覆盖maxDelayTime。我可以用适当的maxDelay

我正在构建一个使用多个延迟节点的实时循环应用程序。我通过将maxDelayTime设置为略长于delayTime来初始化延迟节点,因为这样做似乎是正确的。我不知道这是否真的有什么不同,但将maxDelayTime设置为3分钟似乎是浪费时间,而我只需要10-15秒的延迟

但是,我希望用户能够调整循环的大小,这就是我遇到的问题。如果用户希望循环更小,我可以将delayTime设置为更小的数字,这一切都很好。但是,用户不能使循环变大,因为不能覆盖maxDelayTime。我可以用适当的maxDelayTime重新创建所有延迟节点,但是延迟节点连接到/来自一组其他节点,所以我不想重新创建整个过程

所以我的问题是:


创建8个最大延迟时间为3分钟的延迟节点是一个坏主意吗?即使延迟时间通常小于30秒,以防用户想要进行更长的循环?

是的,这是一个坏主意

考虑这一点的最佳方式是maxDelayTime设置不断更新的内部缓冲区的大小——delayTime只是改变该缓冲区中的查找点。如果将maxDelay设置为过大,则会占用大量内存(例如,在44.1kHz立体声系统中,8个延迟节点的maxDelay为3分钟,将占用大约496兆字节。在移动设备上,这是一个巨大的容量(即使在桌面上,也相当多)


我可能会在一些拐点周围设置边界,以交换新节点(例如>30秒,>2分钟),并为这些大小设置最大延迟。例如,如果默认值为30秒,则8个节点“仅”82兆。

是的,这是个坏主意

最好的办法是,maxDelayTime设置不断更新的内部缓冲区的大小-delayTime只是改变该缓冲区中的查找点。如果将maxDelay设置为过大,则会占用大量内存(例如,立体声44.1kHz中的8个延迟节点,最大延迟为3分钟,将占用大约496兆字节。在移动设备上,这是一个巨大的量。(即使在桌面上,也相当大。)


我可能会在一些拐点周围设置边界,以交换新节点(例如>30秒,>2分钟),并为这些大小设置最大延迟。例如,如果默认值为30秒,则您的8个节点“仅”82兆。

这正是我想知道的。谢谢。这正是我想知道的。谢谢。