totalJSHeapSize 和usedJSHeapSize 的区别

问题描述 投票:0回答:1

我正在查看 JS performance.memory 文档,以了解我们的 Web 应用程序正在使用的系统负载。

API 返回以下值,在 MDN 中解释为

jsHeapSizeLimit

The maximum size of the heap, in bytes, that is available to the context.

totalJSHeapSize

The total allocated heap size, in bytes.

usedJSHeapSize

The currently active segment of JS heap, in bytes.

我无法理解totalHeapSize和usedJSHeapsize之间有什么区别。

具体来说,当前活跃的段JS堆是多少,分配的堆大小是多少?

例如,

jsHeapSizeLimit : 4294705152
totalJSHeapSize : 308498771
usedJSHeapSize  : 267867563

这里 jsHeapSizeLimit 约为 4GB。我猜测这是我的笔记本电脑中的空闲内存,我可以通过任务管理器或活动监视器确认。

但我无法同样理解其他两个指标是什么以及它们有何不同。

有人可以用一些实际例子解释这些术语吗?

javascript memory-leaks heap-memory
1个回答
0
投票
  • totalJSHeapSize
    是分配给 JavaScript 堆的内存总量,无论该内存当前是否正在使用。
  • usedJSHeapSize
    是应用程序中的对象和数据正在积极利用的 JavaScript 堆中的内存量。

之后您可能会想知道

totalJSHeapSize
jsHeapSizeLimit
之间有什么区别。

  • so
    jsHeapSizeLimit
    是 Web 应用程序的 JavaScript 堆允许消耗的最大内存量。

问题是

usedJSHeapSize
是当前正在使用的内存,
totalJSHeapSize
是已分配的供使用的内存,但是如果您的使用量达到此数量,则
totalJSHeapSize
会增加,因此您可以使用更多内存它。而且
jsHeapSizeLimit
你不能只是忽略它,它会防止内存使用过多,从而影响浏览器的稳定性。

© www.soinside.com 2019 - 2024. All rights reserved.