WebAssembly程序可以泄漏内存吗?

Max*_*eld 2 memory-leaks web webassembly

WebAssembly程序以固定数量的虚拟内存开始,并且可以在运行时请求额外的内存.还鼓励他们丢弃未使用的物理页面.可以长时间运行,表现不佳的WebAssembly程序泄漏内存吗?这最终会导致WebAssembly程序崩溃吗?

JF *_*ien 6

WebAssembly程序可以耗尽其分配的所有内存,一旦达到内存声明的最大值,即4GiB或浏览器的限制,它就会崩溃.在内存中,使用像emscripten这样的工具链的C++程序有一个分配器,分配器将决定它在内存不足时的作用.可能会崩溃!

在该内存之外,程序也可以通过保留一堆JavaScript对象并阻止GC收集它们来"泄漏".这最终会达到内存限制,导致崩溃.