v8弱回调


备注

弱回调主要用于清理嵌入在从v8::ObjectTemplate创建的v8::ObjectInternalField中的C ++对象。当JavaScript对象被垃圾收集时,通常也必须删除C ++对象。通过设置弱回调,您可以获得垃圾收集javascript对象的通知并采取适当的操作。

记住垃圾收集不是确定性的,这非常重要。您的程序可能会退出带有从未调用的弱引用回调的对象。这些回调对于正常运行的长期运行程序非常重要,但不应依赖于以一致或快速方式释放关键路径资源。

为了让垃圾收集器知道它应该何时运行,你必须通过v8::Isolate::AdjustAmountOfExternalAllocatedMemory调用告诉它你的C ++对象正在使用的空间量。此调用的参数是字节数的变化 ,因此当您分配它时,您经常发送sizeof(T) ,当您在弱引用回调中清理时,您将发送-sizeof(T)

弱回调 相关例子