在Web应用程序中,当超出某个限制时会加载大量数据崩溃。所以我想找到使用javascript的chrome选项卡使用的内存,即通过代码来防止这类问题。
答案 0 :(得分:8)
//使返回 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