检测 Web 视图内的可用内存
2022-09-03 15:41:14
我正在构建一个应用程序,其中包含运行一些JavaScript代码的应用程序。JavaScript代码分配非常繁重,可能需要大量内存。WebView
有时,所需的内存量超过了JavaScript可以要求的数量,并使WebView的Chromium进程崩溃,从而使我的应用程序崩溃。
我在我的应用程序中收听 - 但在这种情况下,在内存超过1GB的设备上从未调用过它。(甚至没有)。onMemoryTrim
TRIM_MEMORY_RUNNING_LOW
有没有办法检测到我的WebView内存不足,并杀死它或让它知道(这样它就可以释放内存)?
我尝试过轮询,但它不起作用。以下脚本会在 WebView 中执行,则会使其崩溃:performance.memory
var a = [];
var kek = () => {
var b = [];
for(var i = 0; i < 1024 * 1024 * 2; i++) b.push(Math.random());
return b;
}
var ival = setInterval(() => {
let m = performance.memory;
if(m.jsHeapSizeLimit - m.usedJSHeapSize < 1e5) {
console.log("Memory limited")
} else {
a.push(kek());
}
});
有没有办法检测内存即将耗尽,以便我可以优雅地处理它而不会使应用程序崩溃?