0

我正在使用仪器测试 ReplayKit 广播扩展。我修复了我的扩展上的一些泄漏,但一些泄漏发生在框架端,我找不到解决方法。任何人都知道如何修复?它每 0.5 秒泄漏 48Kbyte。

我检查了内存地址的历史记录。保留增量为 +0。Retain 和 Release 搭配得很好,包括这些功能,

[_NSPlaceholderData initWithBytes:length:copy:deallocator:]
[NSXPCDecoder _decodeArrayOfObjectsForKey:]_block_invoke  
[RPBroadcastSampleHandler _processPayloadWithAudioSample:type:]_block_invoke
[RPBroadcastSampleHandler _audioBufferListFromData:]

我的 processSampleBuffer() 立即返回进行测试。所以我的 processSampleBuffer() 不会发生泄漏。

Xcode 工具的屏幕截图

4

1 回答 1

1

此堆栈日志由 Zombies 仪器获取。Zombies 改变了被调试对象的 autorelease() 行为,它保留了自动释放的对象。

通过比较 Zombies 工具结果和 Allocations 工具结果,我发现自动释放的对象在 Allocations 上被释放。所以内存泄漏不会发生在对象上。

于 2018-04-10T22:53:59.953 回答