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