如何跟踪在 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 的热门问题页面的加载时看起来像这样。
我希望能够跟踪某个程序使用了多少数组,这样我就可以弄清楚是否有不必要的内存 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 的热门问题页面的加载时看起来像这样。