没有上限,动态创建ES6符号会导致无法恢复的内存使用?
在Erlang(以及以前的Ruby)中,原子/符号的创建不是垃圾收集。
似乎在全局符号注册表(Symbol.for('string')
)中创建的符号无法被垃圾收集并保持全局唯一,但我可能会遗漏某些内容。这似乎不是由ES6规范决定的。
答案 0 :(得分:2)
符号是原始的并不意味着它们不能使用引用和分配来实现。想想js中的原始字符串。浏览器可能以这种方式实现符号,使它们受gc限制。 chrome中的快速测试for(;;) Symbol();
(不要运行它)会导致锯齿内存配置文件,因此我假设符号被分配并进行垃圾回收。