我在这个Cocoa / WebKit应用程序中寻找内存泄漏。我正在将对象从本机传递到javascript,通过查看它们的生命周期,我注意到垃圾收集方面的不可预测的行为。
我用递增的ID标记每个对象,并跟踪已创建/释放的对象数(垃圾收集)。
分配的第一个~1000个对象在被使用后很快就会被释放,并且未完成对象的数量仍然非常低,大约为10.一些随机对象(例如#171)似乎永远不会被释放。
在那之后,物体徘徊在周围,并且根本不会被释放。对象#171似乎永远不会被收集(在等待一小时观察日志之后),但其他相同处理的对象会相对较快地被删除。
这些都没有证明存在内存泄漏,但它也没有确认没有内存泄漏。
所以,我有几个问题:
JSGarbageCollect(globalContext)
,但似乎没有效果。它不会释放任何物体 - 这些物体后来似乎被GC释放了。