是否收集了ES6全球符号垃圾?

时间:2016-10-12 11:05:22

标签: javascript ecmascript-6

没有上限,动态创建ES6符号会导致无法恢复的内存使用?

在Erlang(以及以前的Ruby)中,原子/符号的创建不是垃圾收集。

似乎在全局符号注册表(Symbol.for('string'))中创建的符号无法被垃圾收集并保持全局唯一,但我可能会遗漏某些内容。这似乎不是由ES6规范决定的。

1 个答案:

答案 0 :(得分:2)

符号是原始的并不意味着它们不能使用引用和分配来实现。想想js中的原始字符串。浏览器可能以这种方式实现符号,使它们受gc限制。 chrome中的快速测试for(;;) Symbol();(不要运行它)会导致锯齿内存配置文件,因此我假设符号被分配并进行垃圾回收。