Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
好吧,标题说明了一切:我想知道 BEAM 不垃圾收集原子的原因是什么。我知道如何 Erlang 原子可以被垃圾收集的问题 ,但是,虽然相关,但它没有回答为什么。
因为在当前设计中这是不可能的(或者至少很难做到)。原子是以下方面的重要组成部分:
尤其是最后一点,这很难。想象一下,我们将有一个用于原子的 GC。如果在我们通过网络发送一些原子的分布式调用之间进行 GC 清理会发生什么?所有这些都使得原子对于 VM 的工作方式非常重要,并且使它们被 GC 不仅会使 VM 的实现更加复杂,而且还会使代码变得更慢,因为原子不需要在进程之间复制并且因为它们不是 GC , 这些可以在 GC 标记步骤中完全省略。