-2

我正在部署一个使用 rebar3 构建的在 erlang 上编写的应用程序。当我运行它时,它使用的是 CPU 的单核。我应该怎么做才能让它使用所有的核心?谢谢

4

2 回答 2

2
  1. 因为所有的工作都在一个过程中?
  2. 因为进程中的工作是互锁的,所以每次只有一个进程可以工作?
  3. 因为配置不当?

您没有提供任何有意义和相关的信息来回答。

于 2018-05-22T05:50:56.503 回答
1

根据这个问题的答案和Erlang 参考手册,启动运行时-smp enabled会导致运行时创建多个 OS 调度程序来将任务分派到不同的 CPU。您可以在运行erl运行时验证这一点并查看[smp:8:8](这意味着我正在运行 8 个调度程序)。

但是,通常 Erlang 通过为您机器上的每个内核创建一个操作系统线程(调度程序)来为您管理这个,这些任务可以被均匀地分配给。

您可能还需要研究的另一件事是,您的代码是否以并发方式编写或主要按顺序运行,在这种情况下,无论如何只需要一个内核。

于 2018-05-21T20:30:03.150 回答