WebKit强制完全垃圾收集/行为&调试/检测泄漏

时间:2016-01-19 19:00:18

标签: javascript garbage-collection webkit

我在这个Cocoa / WebKit应用程序中寻找内存泄漏。我正在将对象从本机传递到javascript,通过查看它们的生命周期,我注意到垃圾收集方面的不可预测的行为。

我用递增的ID标记每个对象,并跟踪已创建/释放的对象数(垃圾收集)。

分配的第一个~1000个对象在被使用后很快就会被释放,并且未完成对象的数量仍然非常低,大约为10.一些随机对象(例如#171)似乎永远不会被释放。

在那之后,物体徘徊在周围,并且根本不会被释放。对象#171似乎永远不会被收集(在等待一小时观察日志之后),但其他相同处理的对象会相对较快地被删除。

这些都没有证明存在内存泄漏,但它也没有确认没有内存泄漏。

所以,我有几个问题:

  • 如何在WebKit中强制执行完全垃圾回收?我想看看我是否有内存泄漏。我试过JSGarbageCollect(globalContext),但似乎没有效果。它不会释放任何物体 - 这些物体后来似乎被GC释放了。
  • 有没有办法判断一个物体是否有参考物?
  • WebKit的GC是否有任何钩子,例如甚至只知道它何时运行,或者获得一些洞察力/统计数据?
  • 是否有关于WebKit GC行为的行为的文档?或者有哪些调试工具?我知道它应该是一个黑盒子,但应该有一些基本的内省工具。

0 个答案:

没有答案