我怎么知道elixir的CPU核心数量?

asi*_*niy 3 erlang elixir

我想根据CPU的数量限制池大小.我怎么知道elixir的CPU核心数量?

Gaz*_*ler 7

您可以使用System.schedulers_online/0来获取可用调度程序的数量.默认为核心数.

这可以在启动时使用+S标志http://erlang.org/doc/man/erl.html#+S进行配置

如果您确实需要核心数量,那么您可以使用:

:erlang.system_info(:logical_processors_available)
Run Code Online (Sandbox Code Playgroud)

您可以在http://www1.erlang.org/doc/man/erlang.html#system_info-1上看到此选项(以及许多其他选项)

  • `System.schedulers_online/0`在我的超线程四核上返回8.但是,在macOS`上:erlang.system_info(:logical_processors_available)`返回`:unknown`. (5认同)
  • 在 MacBook Pro(15 英寸,2018 年)上,调用 `:erlang.system_info(:logic_processors_available)` 也返回 `:unknown`,但另外两个参数返回正确的数字 (12):`:logic_processors` 和 `:逻辑处理器在线` (3认同)