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

SHA*_*Nib 13 javascript google-chrome google-chrome-devtools

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

Tho*_*tos 8

这里来自chrome源代码:

// 在共享工作者中使返回到window.performance.memory的值更精细,更新.如果没有此标志,内存信息仍然可用,但它会被更加频繁地更新和更新.此标志也适用于工人.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崩溃的位置或数据的准确程度.

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

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


Ket*_*tan 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