首页 > 解决方案 > AKPeriodicFunction 中的内存泄漏

问题描述

我一直在 macOS 上使用 AudioKit 4.7.1 AKPeriodicFunction 并注意到即使对于简单的用例,内存也在增长。我还没有在 iOS 上测试过。

我实现了一个简单的例子,你可以通过 Leaks 来跟踪内存。

        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]

标签: audiokit

解决方案


推荐阅读