如何使用javascript查找chrome选项卡使用的内存

时间:2016-04-03 06:01:15

标签: javascript google-chrome google-chrome-devtools

在Web应用程序中,当超出某个限制时会加载大量数据崩溃。所以我想找到使用javascript的chrome选项卡使用的内存,即通过代码来防止这类问题。

2 个答案:

答案 0 :(得分:8)

来自source code of the chrome

  

//使返回 window.performance.memory 的值更精细   以及共享工作者的最新信息。没有这个标志,内存   信息仍然可用,但它是bucketized和更新   不太常见。此标志也适用于工人。 const char   kEnablePreciseMemoryInfo [] =“enable-precise-memory-info”;

因此,您需要--enable-precise-memory-info标记才能获得更加动态和准确的结果。出于安全考虑,Google Chrome默认情况下不会通过performance.memory提供准确的信息。你可以在这里看到https://github.com/paulirish/memory-stats.js/tree/master监视内存的好方法。但即使您可以控制用户运行“站点”的方式,这也不是一个好的解决方案。您无法确定Chrome崩溃的位置或数据的准确程度。

第一个解决方案是创建一个全局factory pattern来计算所有新对象并为每个新对象设置一些预定义大小,当大小达到某个数字时,您可以提醒用户。请注意,不要计算绑定事件。您可以尝试在同一工厂(或更好的工厂)添加事件,但我不知道这将是多么准确。

第二种解决方案,更好的解决方案是this example。一个很好的例子,500,000条记录具有快速响应和低内存。怎么样?简单,只需加载用户看到的数据,没有别的。当用户滚动它时,它会找到正确的数据,而不会加载所有其他数据。这是你可以用很多记忆的事情做的事情。

答案 1 :(得分:5)

我们最近遇到了同样的问题。
您可以使用Web性能API来检查当前的总内存分配。
window.performance

它允许网页访问某些功能以测量网页的性能。有一个非标准的扩展名仅适用于chrome来记录内存信息。

window.performance.memory

它会返回以下信息。

  • usedJsHeapSize:JS对象使用的内存总量,包括V8内部对象,
  • totalJsHeapSize:JS堆的当前大小,包括未被任何JS对象占用的可用空间

还有一个js库可用于记录内存统计信息。 (https://github.com/spite/memory-stats.js

请查看此信息。它可能对你有帮助。 - https://developer.chrome.com/devtools/docs/javascript-memory-profiling