在 Erlang / Elixir 中的进程之间发送大列表

Sending big lists between processes in Erlang / Elixir

假设您想将一个大列表(例如 1_000_000 个条目)发送到 Erlang / Elixir 中的另一个进程。

  • 是也不是。复制巨大的结构不会阻塞接收者,但会阻塞发送者。请参阅 类似问题。
  • 是的,如果你经常这样做是不好的做法。或者:
    1. 重构您的代码,以便您可以将数据分区到不同的进程。
    2. 将数据存储在ets中。 (这不是灵丹妙药,您仍然可以将数据复制进出 ets,但这取决于您的访问模式。)
    3. 将数据存储为二进制。

这取决于你做什么。你不应该在一个进程中有一个大堆,所以你可能应该重构你的代码。