如何跟踪在 Javascript 中创建了多少数组?

How to keep track of how many arrays are created in Javascript?

我希望能够跟踪某个程序使用了多少数组,这样我就可以弄清楚是否有不必要的内存 allocated.The 我 运行 遇到的问题是 Javascript 构造数组文字 [] 不会触发 Array#constructor。我还有其他方法可以跟踪数组的使用情况吗? ES5 and/or ES6 及更高版本。

var arrayConstructor = Array // store reference
window.arrCount = 0
window.Array = function() {
  arrCount++;
  return new Array();
}

var arr1 = new Array
window.arrCount // 1

var arr2 = []
window.arrCount // 1 : NOT WORKING!

几乎每个网络浏览器都有一个 javascript 分析器。分析器的目的是跟踪内存使用情况、帧渲染速度、CPU 使用情况等。

  • 打开 Chrome 开发者工具 (F12)
  • 单击 "Timeline" 选项卡
  • 确保在名为 "Capture"
  • 的栏中选中 "Memory"
  • 按左上角的录制按钮
  • 刷新页面
  • 页面加载后停止录制
  • 查看 "JS Heap" 图表,了解您的记忆去向

例如,Chrome 的内存分析器在记录 Stack Overflow 的热门问题页面的加载时看起来像这样。