为什么使用WebAssembly的页面在重复刷新后,Chrome最终会报"Out of memory: wasm memory"错误?

4

我希望相信刷新浏览器窗口或选项卡不会泄漏信息。不幸的是,当涉及WebAssembly时情况并非如此。

我已经用Rust构建了一个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/issues/6615的影响)。
1个回答

6

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接