Javascript Set() 中的成员数量是否有限制?或者这是V8中的一个错误

2024-02-07

下面是一些简单的 Javascript 代码,它将整数重复添加到 Set 中:

var i;
var limit = 1 << 24;
var s = new Set();

for (i = 0; i < limit + 10; i++) {
    s.add(i);
    if (i >= limit - 10) console.log ("Set size is now " + s.size)
}

当集合大小恰好增长到 2^24(我称之为“限制”)时,就会有一个

FATAL ERROR: invalid table size Allocation failed - process out of memory

该过程远未达到实际内存限制,而且这种情况发生在 2^24 个元素上确实很可疑。使用 Node.js 或在 Chrome 中运行它会发生这种情况。我已经在 Windows 和 Mac OSX(均为 64 位)上尝试过,当您在 Set() 中存储其他更复杂的内容时,它似乎在 2^24 个元素上遇到了困难。我认为 Map() 及其同类都有同样的问题。

我在文档中找不到有关此限制的任何内容。这是一个错误吗?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Javascript Set() 中的成员数量是否有限制?或者这是V8中的一个错误 的相关文章

随机推荐