erlang:erlang shell 中的第一行是什么意思?

问题描述 投票:0回答:1
$ erl
Erlang/OTP 26 [erts-14.2.1] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit] [dtrace]

erlang shell 的每一块都代表什么意思? 我对这些特别感兴趣
[smp:8:8]
[答:8:8:10]
[异步线程:1]
[吉]
[dtrace]

erlang
1个回答
0
投票

选项:

smp

来自doc

+S Schedulers:SchedulerOnline
设置要创建的调度程序线程的数量以及要设置在线的调度程序线程...

如果你运行

erl +S 10
你会看到
[smp:10:10]

ds

来自doc

+SDcpu DirtyCPUSchedulers:DirtyCPUSchedulersOnline
设置要创建的脏 CPU 调度程序线程数和要设置在线的脏 CPU 调度程序线程数...

如果你运行

erl +SDcpu 7
你会看到
[ds:7:7:10]

第三个数字是

+SDio DirtyIOSchedulers

async-threads

来自doc

+A size
设置异步线程池中的线程数... 链接驱动程序使用异步线程池来处理可能需要很长时间的工作...

如果你运行

erl +A 10
你会看到
[async-threads:10]

jit

Erlang JIT已启用

dtrace

我对此一无所知,但似乎是此页面

详细说明一下调度程序:

BEAM 启动许多操作系统线程来运行模拟器(调度程序,

+S
),但是本机代码(nif/vm 代码)可能需要很长时间才能完成,并且如果正常运行,可能会导致 VM 停止运行,所以这(应该)在肮脏的调度程序中运行:

  • 脏CPU:脏CPU调度程序的典型用户是大型垃圾收集、编写为nifs的json协议编码/解码器和矩阵操作库。
  • 脏 IO:脏 IO 调度程序的典型用户是读取和写入文件。

异步线程池用于链接驱动程序,这些驱动程序大部分已迁移到脏 IO 调度程序

© www.soinside.com 2019 - 2024. All rights reserved.