JSContext 的内部何时被垃圾收集?

When do the internals of a JSContext get garbage collected?

我在我的应用程序中使用 JSContext,它运行良好,但我有点担心内存使用情况。当我使用完上下文后,它仍然作为调试目标位于我的 Safari 开发菜单中,当我 运行 "Debug Memory Graph" 时,很多 JavaScriptCore 对象都在附近。

这是预料之中的吗(即将来会根据需要回收它),还是表明我正在发生内存泄漏?内存图没有显示任何东西,但 某些东西 必须持有那些 JavaScriptCore 对象。

事实证明,即使您在 JSContext 上请求垃圾收集,它实际上(不一定)仍然不会执行。您需要使用内部方法强制执行它: