我正在考虑使用Elixir来解决一个问题,主要是因为它能够以较低的成本生成大量进程。
在我的场景中,我想创建几个“原始”进程,将特定的不可变数据加载到内存中,然后根据需要制作这些进程的副本。所有副本都使用相同的基础数据,但会执行不同的只读任务。例如,想象一下,“原始”进程中有《战争与和平》的文本,每个原始的副本对文本执行不同类型的分析。
我的问题:
- 在Elixir / Erlang VM中是否可以复制现有进程及其全部内存内容?
- 如果可以,每个副本是否像原始进程一样占用同样数量的内存,还是像Unix进程一样使用“写时复制”策略共享内存(在这种情况下,就不会进行后续的写操作)?