在我的应用程序中,每个东西都可以正常工作,直到我分离一个线程从文件中读取音频数据并进行处理.
无论我做什么,垃圾收集似乎都不知道这个线程上发生了什么.我试过[NSThread self],[NSThread currentThread],[[NSGarbageCollector defaultCollector] collectIfNeeded]和collectExhaustivly].我从NSThread转到NSOperation与NSOperationQueue.
这些建议的解决方案都没有奏效.最近,我从NSMutableArrays切换到
Float32* pfArray= calloc(numFloats, sizeof(Float32));
保存我的数据,并用来
free(pfArray);
释放那个记忆.这样做效果更好,但仍然泄漏了不错的数量.
在Activity Monitor中指示的"真实内存"遇到一些任意数字后,垃圾收集似乎开始工作到一定程度,但是当它确实起作用时,它并不释放所有正在使用的内存.它只是不会让它远高于任意阈值.
我已经读过GC是要走的路,但现在我不确定并且有一个几乎完全编写的程序.任何建议都会非常有帮助.谢谢!