Почему в конечном итоге Chrome выбрасывает сообщение «Out of memory: wasm memory» после многократного обновления страницы, использующей WebAssembly? - PullRequest
0 голосов
/ 07 марта 2019

Я хотел бы верить, что обновление окна или вкладки браузера не может быть утечкой. К сожалению, это не относится к WebAssembly.

Я создал ящик для веб-сборки с помощью Rust. Размер скомпилированного ящика составляет примерно 360 Кб (до сжатия контента), и он отлично работает в Firefox и даже в Safari на iOS. Однако в Chrome возникают многочисленные проблемы, одна из которых заключается в том, что обновление страницы, использующей .wasm, в конечном итоге приводит к ошибке нехватки памяти в консоли.

Страница прекрасно работает около 35 обновлений, а затем выдает следующее:

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

После этого вкладка становится бесполезной, но открытие новой вкладки и загрузка страницы работает, как и ожидалось - опять же, примерно для первых 35 обновлений.

Это ошибка в браузере или я что-то не так делаю в своем коде? Если это ошибка, есть ли способ обойти это? (Не то чтобы я ожидал, что это проявится в производстве, но в любом случае ...)

(Предположительно, обещание, упомянутое в сообщении об ошибке, - это обещание, возвращаемое import('...'). Я использую веб-пакет и поэтому на меня влияет https://github.com/webpack/webpack/issues/6615)

1 Ответ

1 голос
/ 07 марта 2019

Это явно подтвержденная ошибка в Chrome: https://bugs.chromium.org/p/chromium/issues/detail?id=935169

Это происходит только тогда, когда открыты инструменты разработчика Chrome.

...