gpt4 book ai didi

javascript - SpiderMonkey GC通知和弱引用

转载 作者:行者123 更新时间:2023-12-03 08:03:35 31 4
gpt4 key购买 nike

当 SpiderMonkey 收集(或即将收集)特定的“GC 事物”时是否可以收到通知?

在 V8 中,存在附加了回调的“弱句柄”,当 V8 GC 确定句柄对象已变得无法访问时,应该调用这些回调。即使回调没有被调用(根据 V8 文档这是可能的),我们仍然可以使用 v8::Persistent<T>::IsNearDeath() 检查句柄指向的对象是否即将被收集。 。

在SpiderMonkey中,我们有PersistentRooted,这是一个强引用。但我们还没有找到任何方法以弱方式安全地引用对象,因此我们至少可以检查以下一个(或多个)条件:

  • 该对象已变得无法访问;
  • 该对象已被收集;
  • 该对象即将被收集;
  • 该对象只有一个引用(即我们的应用程序持有的引用)

最佳答案

But we have not found any way to safely reference an object in a weak manner, so we can check at least for one (or more) of the following conditions

[...]

  • the object has been collected;

这可以通过 weak references 来实现

如果你想探测它们,你可以简单地检查它们是否返回 null。

  • the object is about to be collected;

至少从 C 代码来看 JSClass finalizer应该允许你这样做。

关于javascript - SpiderMonkey GC通知和弱引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34490446/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com