检索更新的JS堆内存大小

时间:2016-02-10 06:48:39

标签: javascript jquery angularjs memory profiling

我正在开发一个记录用户屏幕的网络应用程序。它适用于不到20分钟(最好)的截屏视频。但铬在上述时间后崩溃了。

我想知道是否有可能获得应用程序消耗的更新堆大小。我的应用程序仅适用于chrome。

我尝试了代码:

window.performance.memory

每次都给我以下结果:

MemoryInfo {
 jsHeapSizeLimit: 793000000, 
 usedJSHeapSize: 10000000,
 totalJSHeapSize: 31200000
}

usedJsHeapSize是JS对象使用的内存总量,包括V8内部对象

totalJsHeapSize是JS堆的当前大小,包括未被任何JS对象占用的可用空间。这意味着usedJsHeapSize不能大于totalJsHeapSize。

请注意,并不一定存在有活动JS对象的totalJsHeapSize。

我开始录制,usedJSHeapSize的大小必须在堆中更新。 如何在javascript或jquery中获取更新的usedJSHeapSize?

window.performance.memory

以上代码一次又一次地给出相同的结果。让我在下面演示:

<script>
console.log("JS Heap size: " + window.performance.memory.jsHeapSizeLimit);
console.log("usedJSHeapSize: " + window.performance.memory.usedJSHeapSize);

var x = [];
for(var i=0; i<12345678; i++) {
    x.push(i);
}


console.log("after some calculations usedJSHeapSize: " + window.performance.memory.usedJSHeapSize);
</script>

结果:

JS Heap size: 1620000000
usedJSHeapSize: 10000000
after some calculations usedJSHeapSize: 10000000

1 个答案:

答案 0 :(得分:1)

Chrome不允许我们获取更新的堆大小。它一次又一次地返回相同的值。