我是使用 Chrome 分析器的新手。所以这可能是对我得到的结果的误解。
如果我打开 Chromes 分析器并拍摄以下网页的堆快照,我会注意到 obj3 的保留大小是 obj1 和 obj2 的十倍以上。
<html>
<head>
</head>
<body>
<script>
// return an object with s keys, with values alternating true and false
var makeData = function (s) {
var o = {};
for (var i = 0; i < s; i++) {
o['data' + i] = !!(i % 2);
}
return o;
}
window.obj1 = makeData(14);
window.obj2 = makeData(15);
window.obj3 = makeData(16);
window.obj4 = makeData(17);
window.obj5 = makeData(18);
</script>
</body>
</html>
似乎包含布尔值的字段少于 15 个的对象的保留大小始终为 80,但更多 16 个字段的保留大小为 828,17 个具有 848,18 个具有 868,等等...我很好奇发生了什么这里?
如果重要的话,我在运行 10.6 的 macbook 上使用 Chome 版本 27.0.1453.110。谢谢,