【发布时间】:2016-04-02 02:54:42
【问题描述】:
是否可以在 SpiderMonkey 收集(或即将收集)特定的“GC 事物”时收到通知?
在 V8 中,有一些“弱句柄”附加了回调,当 V8 GC 决定处理的对象变得无法访问时,应该调用这些回调。即使没有调用回调(根据 V8 文档这是可能的),我们仍然可以使用 v8::Persistent<T>::IsNearDeath() 检查句柄指向的对象是否即将被收集。
在 SpiderMonkey 中,我们有 PersistentRooted,这是一个强引用。但是我们还没有找到任何以弱方式安全引用对象的方法,因此我们至少可以检查以下一种(或多种)情况:
- 对象已无法访问;
- 对象已被收集;
- 对象即将被收集;
- 该对象只有一个引用(这是我们的应用程序持有的那个)
【问题讨论】:
标签: javascript garbage-collection spidermonkey