$ 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]
smp
来自doc:
设置要创建的调度程序线程的数量以及要设置在线的调度程序线程...+S Schedulers:SchedulerOnline
如果你运行
erl +S 10
你会看到[smp:10:10]
ds
来自doc:
设置要创建的脏 CPU 调度程序线程数和要设置在线的脏 CPU 调度程序线程数...+SDcpu DirtyCPUSchedulers:DirtyCPUSchedulersOnline
如果你运行
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 停止运行,所以这(应该)在肮脏的调度程序中运行:
异步线程池用于链接驱动程序,这些驱动程序大部分已迁移到脏 IO 调度程序