如何跟踪在Javascript中创建的数组?

use*_*582 9 javascript optimization benchmarking ecmascript-6

我希望能够跟踪某个程序使用了多少个数组,以便我可以确定是否已经分配了不必要的内存.我遇到的问题是Javascript的构造,即数组文字[]不会触发Array#constructor.还有另一种方法让我跟踪阵列的使用情况吗?ES5和/或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!
Run Code Online (Sandbox Code Playgroud)

Sov*_*iut 7

几乎每个Web浏览器都有一个javascript探查器.分析器的目的是跟踪内存使用情况,帧渲染速度,CPU使用率等.

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

例如,在记录Stack Overflow的Top Questions页面的加载时,Chrome的内存分析器看起来像这样.

在此输入图像描述