我一直在macOS上使用AudioKit 4.7.1 AKPeriodicFunction,即使对于简单的用例,也注意到内存在增加。我尚未在iOS上进行测试。
我实现了一个简单的示例,您可以通过泄漏来跟踪内存。
let path = Bundle.main.resourcePath! + "/leadloop.wav"
let player = AKPlayer(url: URL(fileURLWithPath: path))!
player.isLooping = true
let periodicFunction = AKPeriodicFunction(frequency: 5.0){
}
AudioKit.output = player
try? AudioKit.start(withPeriodicFunctions:periodicFunction)
periodicFunction.start()
player.play()
在此示例中,内存不应增加。这是堆栈跟踪中最重的部分,可能会有所帮助,
11 AudioToolbox 34.11 MB __26-[AUAudioUnit renderBlock]_block_invoke
10 macos-leak-test 34.11 MB __52-[AKOperationGeneratorAudioUnit internalRenderBlock]_block_invoke
9 macos-leak-test 34.11 MB DSPKernel::processWithEvents(AudioTimeStamp const*, unsigned int, AURenderEvent const*)
8 macos-leak-test 34.11 MB AKOperationGeneratorDSPKernel::process(unsigned int, unsigned int)
7 macos-leak-test 34.11 MB plumber_compute
6 macos-leak-test 34.11 MB plumbing_compute
5 macos-leak-test 34.11 MB sporth_fexec
4 macos-leak-test 34.11 MB akCustomUgenFunction(plumber_data*, sporth_stack*, void**)
3 libobjc.A.dylib 34.11 MB -[NSObject autorelease]