使用rebar3构建的Erlang应用程序使用单核

时间:2018-05-21 16:19:03

标签: erlang rebar3

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

2 个答案:

答案 0 :(得分:2)

  1. 因为所有工作都在一个过程中?
  2. 因为流程中的工作是互锁的,所以每次只有一个流程可以工作吗?
  3. 因为配置不当?
  4. 您没有提供任何有意义且相关的信息来回答。

答案 1 :(得分:1)

根据this questionthe Erlang reference manual的答案,使用-smp enabled启动运行时将导致运行时创建多个OS调度程序,以将任务分派给不同的CPU。您可以在运行erl运行时并查看[smp:8:8]时验证这一点(这意味着我正在运行8个调度程序)。

但是,通常Erlang会为您管理这个问题,方法是为您机器上的每个核心创建一个OS线程(调度程序),可以均匀地分配任务。

您可能想要研究的另一件事是,如果您的代码是以并发方式编写的,或者大多数是按顺序运行的,那么无论如何只需要一个核心。