WebAssembly的主要用例之一是提供可在JS中使用的高性能接口。在大多数情况下,这意味着需要公开一些类,这些类通常在WASM堆上创建,并且它们的生存期必须手动管理。但是,这似乎不适用于JS,因为无法检测到JS对象何时超出范围并获得垃圾回收,因此,除非手动调用JS代码,否则我们最终会在WASM代码中出现内存泄漏。析构函数,由于通常采用JS代码的结构,因此很难做到。
三年前有a discussion on this,但此后似乎没有任何变化。拟议的WeakRef可以稍微缓解问题,尽管效率很低,但至少可以在开发过程中使用它以有用的方式通知我们泄漏。
我的问题是:从那以后有没有动静?我找不到关于此的最新讨论,这似乎是一个相当基本的问题。仍然没有办法检测对象何时被垃圾回收?