objective-c - 检测内存增长

标签 objective-c c xcode

我在 xcode 仪器中看到了内存增长,因此在尝试消除问题后,我发现在我的音频缓冲区回调方法中,有一个代码块,当我删除时,问题就解决了。 因此,此回调每秒发生多次并导致增长:

    static OSStatus recordingCallback(void *inRefCon, 
                                      AudioUnitRenderActionFlags *ioActionFlags, 
                                      const AudioTimeStamp *inTimeStamp, 
                                      UInt32 inBusNumber, 
                                      UInt32 inNumberFrames, 
                                      AudioBufferList *ioData)
    {


        AudioBuffer buffer;

        buffer.mNumberChannels = 1;
        buffer.mDataByteSize = inNumberFrames * 2;
        //NSLog(@"%ld",inNumberFrames);
        buffer.mData = malloc( inNumberFrames * 2 );
        // Put buffer in a AudioBufferList
        AudioBufferList bufferList;
        bufferList.mNumberBuffers = 1;
        bufferList.mBuffers[0] = buffer;



        OSStatus status;
        status = AudioUnitRender(audioUnit, 
                                 ioActionFlags, 
                                 inTimeStamp, 
                                 inBusNumber, 
                                 inNumberFrames, 
                                 &bufferList); 
..
..
..
 free(buffer.mData);

你能在这里看到一些可能导致这种情况的行吗? buffer.mdata 是免费的。 还有一些我没有释放的东西,它正在增长。

谢谢。

最佳答案

看起来您忘记释放您的 bufferList

关于objective-c - 检测内存增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10229620/

相关文章:

c - 在 C 中解析文件/将其添加到数组中

iphone - 访问子ViewController中的TabBarController变量

IOS StoryBoard 约束;底部按钮上方的大空间

ios - Objective-C HealthKit 识别源是来自 Apple iPhone 还是 Apple Watch

iOS 在锁屏上显示消息

iphone - sqlite 将日期写入电子邮件

c++ - C、C++、数据类型、运算符和表达式

c - 如何判断一个字符串是否是另一个字符串的旋转

swift - 垂直对齐工具栏内的条形按钮

ios - 应用程序崩溃并重启手机