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

对比

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 的内存使用情况?

4

1 回答 1

1

您可以考虑V8 profiler。使用它的标志,您可以获得堆使用情况。可能这就是你需要的。

于 2012-12-03T15:16:34.687 回答