基础库版本:v2.30.2
因为微信小程序没有支持回声算法,我便移植了自己的一套回声算法打包成wasm放到小程序里面调用。这个方式在安卓版本的小程序上是几乎完美运行的,但是在IOS的小程序上,声音断断续续,后来发现是每次调用wasm的接口进行回声消除说用的时间都特别长并且时间并不稳定。在安卓小程序上,1k个样本声音数据基本能稳定在50ms内处理完成,而在IOS的小程序上,这个时间最低也要300+ms,最长甚至需要1100ms。然后我把声音部分功能移植到h5页面,用同一个wasm,发现这块功能在Safari上可以完美运行,1k的声音样本数据处理的时间也非常快。这个问题我需要怎么去解决?是否有其他方案可以加速IOS小程序中wasm的计算时间或者小程序有没有针对回声消除有特定的API?
你说的没错,iOS小程序基于JSCore运行,由于没有jit,性能对比安卓会差一些。不过你可以把wasm放到worker内执行,wx.createWorker('workers/index.js', {useExperimentalWorker: true}) useExperimentalWorker设置为true会开启jit
补充一下,测试的iOS机器是Iphone6和IPhone6 Plus。在IPhone X Max以上机型,没有这个情况。如果说是性能不够,但它却可以在Safari上流畅运行。