Подтверждается ли информация о том, что при использовании wasm при высокой нагрузке память не освобождается после снижения нагрузки?

Возможно ли управлять памятью, которую занимает процесс в WebAssembly модуле, чтобы она возвращалась обратно для использования браузером или операционной системой? Или единственным решением является выделение отдельного модуля для такого занимающего память процесса и его удаление во время выполнения программы?
  • 7 октября 2023 г. 20:27
Ответы на вопрос 2
По умолчанию в WebAssembly память не освобождается автоматически после снижения нагрузки. Сборка мусора в WebAssembly не предусмотрена, поэтому вручную управлять памятью необходимо.

Однако есть способ управлять памятью в WebAssembly модуле, чтобы она возвращалась обратно для использования браузером или операционной системой. Это можно сделать, используя функции экспорта в WASM, которые позволяют освободить занимаемую память. Экспортированные функции можно вызывать из JavaScript, чтобы явно освободить память после ее использования в WebAssembly модуле.

Выделение отдельного модуля для управления памятью также может быть решением, но оно не является единственным. Зависит от требований и ограничений вашего конкретного случая.

В целом, память WebAssembly модуля нужно управлять вручную для оптимального использования ресурсов и предотвращения утечек памяти.
Вы правы, память не освобождается! 

Краткая история освобождения памяти васмом:
Ну и если кто-то захочет сам прикоснуться к истории:
Подход "пересоздавать инстанс, чтобы освободить память" - это общий подход, так приходится делать всем, кто хочет освобождать память
Похожие вопросы