在erlang中,你可以创建的原子数量限制为1,048,576,并且它不是垃圾收集的。在gen_server
文档中陈述原子不是垃圾收集,但我不知道是否有限制。
elixir也有限制吗?如果是这样的话是什么?
Elixir在与Erlang相同的虚拟机上运行,因此它与Erlang具有相同的原子限制。
您可以使用:erlang.system_info(:atom_limit)
检查当前限制,并且可以通过将+t
标志传递给Erlang虚拟机来更改限制,使用--erl
将标记传递给Erlang:
$ elixir -e 'IO.inspect :erlang.system_info(:atom_limit)'
1048576
$ elixir --erl "+t 2000000" -e 'IO.inspect :erlang.system_info(:atom_limit)'
2000000
但是,如果你发现自己的原子用完了,你应该尝试用另一种方法解决问题。