检测内存增长

时间:2012-04-19 13:55:26

标签: 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是免费的。 还有一些我不自由的东西,这种东西正在增长。

感谢。

1 个答案:

答案 0 :(得分:0)

您似乎忘了发布bufferList