【问题标题】:Spidermonkey: How do I delete the global objectSpidermonkey:如何删除全局对象
【发布时间】:2014-12-16 15:01:01
【问题描述】:

我可以用

创建一个全局对象
JS_NewCompartmentAndGlobalObject

(SM 1.8.5) 或类似功能

但是如何删除全局对象。据我所知,全局对象是有根的,因此没有 GC。最后我可以调用 JS_DestroyContext 但要调用 JS_GC 我必须有一个上下文。全局对象垃圾什么时候回收?

【问题讨论】:

    标签: javascript c spidermonkey


    【解决方案1】:

    JS_DestroyContext 调用执行垃圾收集以回收上下文全局使用的内存。据推测,您应该在销毁上下文之前将JS::Rooted 设置为JSVAL_NULL,以便在 GC 运行时没有全局的堆栈根。

    【讨论】:

      【解决方案2】:

      阅读此主题topic。如果您想在将来删除它,您需要使用var 创建您的对象。或者,如果您不想使用它,只需将其放入 null。如果这个对象是在没有var 的情况下创建的,在你不关闭窗口之前,它不会被你的 GC 处理。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-09
        • 2012-12-29
        • 1970-01-01
        • 2016-02-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多