为什么Chrome在反复刷新使用WebAssembly的页面后最终会抛出"Out of memory: wasm memory"?



我想相信刷新浏览器窗口或标签不会泄漏。不幸的是,当涉及WebAssembly时,情况似乎并非如此。

我已经建造了一个带锈蚀的WebAssembly板条箱。板条箱的编译尺寸约为360 kb(在内容压缩之前),板条箱在Firefox甚至iOS上的Safari中都可以正常工作。但是,我在Chrome中遇到了许多问题,其中一个是刷新使用.wasm的页面最终导致控制台中的错误错误。

该页面可用于大约35个刷新,然后投掷以下内容:

Uncaught (in promise) RangeError: WebAssembly Instantiation: Out of memory: wasm memory

之后,选项卡是没有用的,但是打开一个新的选项卡并加载页面按预期工作 - 同样,大约是第一个35刷新。

这是浏览器中的错误还是我在代码中做错了什么?如果是一个错误,有什么方法可以解决吗?(并不是我希望它会在生产中表现出来,而是……)

(大概,错误消息中提到的承诺是import('...')返回的消息。我正在使用WebPack,因此我受https://github.com/webpack/webpack/webpack/sissues/6615)

这显然是Chrome中的一个确认错误:https://bugs.chromium.org/p/chromium/issues/issues/detail?id=935169

它仅在打开Chrome的开发人员工具时才发生。

相关内容

最新更新