如何测量 JavaScript 对象的内存使用情况

3
例如,我想比较“数字数组的数组”和“字符串数组”,将二者用于存储具有Alpha值大于或小于0.5的静态画布/图像的位,以便稍后需要读取/访问它们。 我想知道哪一个可以拥有更小的内存占用并且可能更快?
var c =$('$myCanvas');
var d = c[0].getContext('2d').getImageData().data; 
// access: d[3+4*(c.width()*y+x)] >= 0.5

vs

var n = [ [ 2147483647, 2147483647, 2147483647 ], [ 0, 0, 0 ], ... ]
// access: n[y][x/31|0] >> x%31 & 1

var s = [ [ 255, 255, 255, 255, ... ].to_s(), [ 0, 0, 0, 0, ...].to_s(), ... ]
// access: n[y].charCodeAt(x/8|0) >> x%8 & 1    

请注意,to_s()是将字节数组转换为字符串的自定义函数,类似于此函数:https://codereview.stackexchange.com/questions/3569/pack-and-unpack-bytes-to-strings。这些代码可能是错误的,只是我稍后要实现的概念。
那么,我的问题是如何测量d、n和s的内存使用情况?

1
非常酷的问题,期待答案! - OneChillDude
2
可能重复:https://dev59.com/Q3M_5IYBdhLWcg3wvV5w - Teemu
1个回答

1
你可以考虑使用V8分析器。通过调整它的标志,你可以获得堆使用情况。这可能是你需要的。

这个吗?https://code.google.com/p/v8/wiki/V8Profiler它不显示内存使用量。 - Kokizzu
我已经使用v8进行了内存分析。我没有使用Spider Monkey的经验。 - Minko Gechev
但是请注意...如果您使用自定义标志构建引擎... - Minko Gechev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接