【发布时间】:2017-03-15 08:04:15
【问题描述】:
我希望能够跟踪某个程序使用了多少个数组,以便确定是否分配了不必要的内存。我遇到的问题是 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!
【问题讨论】:
-
你能拦截到
Array.__proto__.constructor或Object.__proto__.constructor的电话吗? -
@DavidEhrmann 不,我认为问题在于 javascript 在使用文字时会短路 Array 构造函数。
-
不,您不能覆盖数组文字,请参阅:stackoverflow.com/questions/25084889/…
-
另外,X/Y 问题。您真的在问“我如何分析 Javascript 代码?”
-
@DavidEhrmann 我很抱歉,我正在尝试找出其他语言可以轻松处理的一件事,我只是好奇 javascript,虽然改进了许多很棒的功能,但可以提供一个本机钩子来允许进行内部分析。
标签: javascript optimization ecmascript-6 benchmarking