gpt4 book ai didi

process - Elixir/Erlang可以复制一个进程,包括它的内存吗?

转载 作者:行者123 更新时间:2023-12-04 13:38:36 24 4
gpt4 key购买 nike

我正在考虑使用Elixir解决问题,主要是因为能够廉价地生成大量进程。

在我的场景中,我想创建几个“原始”进程,将特定的,不可变的数据加载到内存中,然后根据需要制作这些进程的副本。这些副本将全部使用相同的基础数据,但对其执行不同的只读任务;例如,假设一个“原始”文本在内存中包含“ war 与和平”文本,并且该原始文本的每个副本都对该文本进行了不同类型的分析。

我的问题:

  • 是否可以在Elixir/Erlang VM中复制现有进程,内存内容以及所有内容?
  • 如果是这样,每个副本是否会像原始文件一样消耗大量内存,或者它们可以共享内存?就像Unix进程使用“写时复制”策略一样吗? (并且在这种情况下,将不会进行后续写入。)
  • 最佳答案

    没有内置的方法来复制进程。最简单的方法是启动“原始”过程和“副本”,并将消息中的所有相关数据发送到副本。流程不共享数据,因此没有更有效的方式来处理数据。将数据仅部分地放入ETS表中有助于共享,因为使用时将ETS表中的数据复制到流程中,但是,您不需要将所有数据都放在流程堆中。

    关于process - Elixir/Erlang可以复制一个进程,包括它的内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29033361/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com