GoGPT Best VPN GoSearch

OnWorks 网站图标

erl - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管提供商中运行 erl

这是可以使用我们的多个免费在线工作站之一(例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器)在 OnWorks 免费托管提供商中运行的命令 erl

程序:

您的姓名


erl - Erlang 模拟器

商品描述


这个 ERL 程序启动 Erlang 运行时系统。 确切的细节(例如,是否
ERL 是脚本或程序以及它调用的其他程序)取决于系统。

Windows 用户可能想要使用 韦尔 而是在自己的窗口中运行的程序
带滚动条并支持命令行编辑。 这 ERL Windows 上的程序不提供
在其 shell 中进行行编辑,并且在 Windows 95 上无法滚动回要编辑的文本
已滚出屏幕。 这 ERL 但是,程序必须在管道中使用,或者如果您
想要重定向标准输入或输出。

请注意:
从 ERTS 版本 5.9 (OTP-R15B) 开始,运行时系统将默认 而不去 绑定调度程序
到逻辑处理器。 有关详细信息,请参阅文档 +sbt 系统标志。

出口


ERL

启动 Erlang 运行时系统。

论据可以分为 模拟器 标志, 标志平原 参数:

* 以字符开头的任何参数 + 被解释为 模拟器 .

正如名称所示,模拟器标志控制模拟器的行为。

* 以字符开头的任何参数 - (连字符)被解释为
应该传递给运行时系统的 Erlang 部分,更多
特别针对 初始化 系统进程,参见 初始化(3erl).

这个 初始化 进程本身解释其中一些标志, 初始化 标志。 这也
存储任何剩余的标志, 用户 标志。 后者可以通过以下方式检索
调用 初始化:获取参数/1.

可以注意到,有少量的“-”标志现在实际上
是模拟器标志,请参阅下面的描述。

* 普通参数不会以任何方式解释。 它们也存储在
初始化 处理并可以通过调用来检索 初始化:get_plain_arguments/0。 清楚的
参数可以出现在第一个标志之前,也可以出现在 -- 旗帜。 此外,
国旗 -额外 导致接下来的一切都变成简单的论点。

计费示例:

% erl +W w -sname arnie +R 9 -s my_init -extra +bertie
(arnie@host)1> init:get_argument(sname)。
{好的,[[“阿尼”]]}
(arnie@host)2> init:get_plain_arguments()。
[“+伯蒂”]

服务 +W w+R 9 是模拟器标志。 -s 我的初始化 是一个初始化标志,解释为
初始化. -sname 阿尼 是一个用户标志,存储为 初始化。 它被内核读取并会
导致 Erlang 运行时系统变得分布式。 最后,之后的一切
-额外 (那是, +伯蒂) 被视为普通参数。

% erl-myflag 1
1> 初始化:获取参数(我的标志)。
{好的,[[“1”]]}
2> 初始化:get_plain_arguments()。
[]

这里是用户标志 -myflag 1 被传递到并存储 初始化 过程。 它是一个
用户定义的标志,可能由某些用户定义的应用程序使用。

旗帜


在下面的列表中,标记了初始化标志(init flag)。 除非另有说明,所有
其他标志是用户标志,可以通过调用检索其值
初始化:获取参数/1。 请注意,用户标志列表并不详尽,可能有
另外,应用程序特定的标志,而是记录在相应的
申请文件。

--(初始化标志):
接下来的一切 -- 直到下一个标志(-旗 or +标志) 被认为是简单的
参数并可以使用检索 初始化:get_plain_arguments/0.

-应用 当前类目 瓦尔:
设置应用程序配置参数 当前类目 到价值 瓦尔 为申请
实践应用,请参阅 应用(5)应用(3erl).

-args_文件 文件名:
从文件中读取命令行参数 文件名。 参数读取自
文件替换 '-args_文件 文件名' 生成的命令行上的标志。

该文件 文件名 应该是纯文本文件,可能包含注释和命令
行参数。 注释以 # 字符开始,一直持续到下一个结尾
行字符。 反斜杠 (\\) 用作引用字符。 所有命令行
接受的论据 ERL 是允许的,也 -args_文件 文件名 旗帜。 当心
不要导致包含以下内容的文件之间的循环依赖关系 -args_文件 旗,
虽然。

这个 -额外 旗帜经过特殊处理。 它的范围在文件末尾结束。 论点
以下 -额外 标志在命令行上移动到 -额外 部分,即
紧随其后的命令行结尾 -额外 旗。

-async_shell_start:
初始 Erlang shell 不会读取用户输入,直到系统启动过程完成。
已完成(Erlang 5.4 及更高版本)。 该标志禁用启动同步
功能并让 shell 与系统的其余部分并行启动。

-启动 文件:
指定启动文件的名称, 文件.boot,用于启动系统。 看
初始化(3erl). 除非 文件 包含绝对路径,系统搜索 文件.boot
在当前和 $ROOT/bin 目录。

默认为 $ROOT/bin/start.boot.

-boot_var 瓦尔 :
如果引导脚本包含路径变量 瓦尔 以外 $根,这个变量是
扩展到 。 当应用程序安装在另一个目录中时使用
$ROOT/lib,请参阅 系统工具:make_script/1,2.

-代码路径缓存:
启用代码服务器的代码路径缓存,请参见 (3erl).

-编译 Mod1 Mod2 ...:
编译指定的模块,然后终止(如果
某些文件的编译未成功)。 暗示 -无输入。 不推荐-使用
埃里克 代替。

-config 配置:
指定配置文件的名称, 配置文件,用于配置
应用程序。 看 应用(5)应用(3erl).

-connect_all false:
如果此标志存在, 全球化 不会维持完全连接的网络
分布式Erlang节点,则不能使用全局名称注册。 看
全球化(3erl).

-曲奇饼 利用Cookies的:
过时的标志没有任何效果和常见的拼写错误 -setcookie。 使用 -setcookie
代替。

-分离:
启动与系统控制台分离的 Erlang 运行时系统。 对跑步很有用
守护进程和后台进程。 暗示 -无输入.

-emu_args:
对于调试很有用。 打印出发送到模拟器的实际参数。

-环境 请按需咨询 价值观:
设置主机操作系统环境变量 请按需咨询 到价值 价值观 对于Erlang来说
运行时系统。 例子:

% erl -env 显示杜松子酒:0

在这个例子中,Erlang运行时系统是用以下命令启动的: 显示屏玻璃制造 环境
变量设置为 杜松子酒:0.

-评估 表达式(初始化标志):
使 初始化 评估表达式 表达式,请参阅 初始化(3erl).

-额外(初始化标志):
接下来的一切 -额外 被视为普通参数,可以使用以下方式检索
初始化:get_plain_arguments/0.

-心:
启动 Erlang 运行时系统的心跳监控。 看 (3erl).

-隐:
如果 Erlang 运行时系统作为分布式节点运行,则将其作为隐藏节点启动。
隐藏节点始终与除节点之外的所有其他节点建立隐藏连接
在同一个全球组中。 隐藏连接不会在任何一个上发布
连接的节点,即两个连接的节点都不是结果的一部分
节点/0 在另一个节点上。 另请参阅隐藏的全局组, 全局组(3erl).

-主机 主机:
指定运行 Erlang 启动服务器的主机的 IP 地址,请参阅
erl_boot_server(3erl)。 该标志是强制性的,如果 -装载机 INET 标志存在。

IP 地址必须以标准形式给出(四个十进制数字,用分隔符分隔)
期间,例如 “150.236.20.74”。 主机名不可接受,但可以是广播
地址(最好限于本地网络)。

-ID Id:
指定 Erlang 运行时系统的标识。 如果它作为分布式运行
节点, Id 必须与随名称一起提供的名称相同 -sname or -芋头
旗。

-init_调试:
使 初始化 在解释启动脚本时写入一些调试信息。

-指令(模拟器标志):
选择要运行的已检测的 Erlang 运行时系统(虚拟机),而不是
普通的。 运行检测的运行时系统时,一些资源使用数据
可以使用该模块获取并分析 仪器。 从功能上来说,它的行为
就像普通的 Erlang 运行时系统一样。

-装载机 装载机:
指定使用的方法 erl_prim_loader 将 Erlang 模块加载到系统中。
参见 erl_prim_loader(3erl)。 二 装载机 支持方法, 电子档案INET. 电子档案
表示使用本地文件系统,这是默认值。 INET 意味着使用启动服务器
另一台机器,以及 -ID, -主机-setcookie 还必须指定标志。
If 装载机 是其他东西,用户提供的 装载机 端口程序启动。

-使:
使 Erlang 运行时系统调用 制作:全部() 在当前工作目录中并且
然后终止。 看 使(3erl). 暗示 -无输入.

-男子 模块:
显示 Erlang 模块的手册页 模块。 仅在 Unix 上受支持。

-模式 互动 | 嵌入式:
指示系统是否应该动态加载代码(互动),或者如果所有代码
应在系统初始化期间加载(嵌入式),请参阅 (3erl). 默认为
互动.

-芋头 姓名:
使Erlang运行时系统成为一个分布式节点。 该标志调用所有网络
节点变得分布式所需的服务器。 看 网络内核(3erl)。 也是
确保 EPMD 在 Erlang 启动之前在当前主机上运行。 看 EPMD(1).

节点的名称将是 姓名@主机,在 Moku:Pro 上 主办方 是完全限定的主机名
当前主机。 对于简称,请使用 -sname 旗代替。

-无输入:
确保 Erlang 运行时系统永远不会尝试读取任何输入。 暗示
-无壳.

-无壳:
启动一个没有 shell 的 Erlang 运行时系统。 该标志使得可以
Erlang 运行时系统作为一系列 UNIX 管道中的一个组件。

-nostick:
禁用 Erlang 代码服务器的粘性目录功能,请参阅 (3erl).

-oldshell:
从 Erlang 3.3 调用旧的 Erlang shell。 旧的外壳仍然可以使用。

-pa 目录1 目录2 ...:
将指定目录添加到代码路径的开头,类似于
代码:add_pathsa/1。 看 (3erl)。 作为替代 -pa, 如果有多个目录
将被添加到代码路径之前,并且目录有一个共同的父目录
目录,该父目录可以在 ERL_LIBS 环境
多变的。 看 (3erl).

-pz 目录1 目录2 ...:
将指定的目录添加到代码路径的末尾,类似于
代码:add_pathsz/1。 看 (3erl).

-路径 目录1 目录2 ...:
替换引导脚本中指定的路径。 看 脚本(5).

-proto_dist :
指定 Erlang 分发的协议。

inet_tcp:
基于 IPv4 的 TCP(默认)

inet_tls:
通过 TLS/SSL 分发

inet6_tcp:
基于 IPv6 的 TCP

例如,启动 IPv6 分布式节点:

% erl-名称 [email protected] -proto_dist inet6_tcp

-雷姆什 Node:
使用连接到的远程 shell 启动 Erlang Node.

-rsh 教学计划:
指定替代方案 RSH 用于在远程主机上启动从节点。 看
奴隶(3erl).

-跑 办法 [功能 [精氨酸1, 精氨酸2, ...]]](初始化标志):
使 初始化 调用指定的函数。 FUNC 默认为 开始。 如果没有参数
假设该函数的元数为 0。否则,假设该函数的元数为
数量1,取列表 [参数1,参数2,...] 作为论证。 所有参数都传递为
字符串。 看 初始化(3erl).

-s 办法 [功能 [精氨酸1, 精氨酸2, ...]]](初始化标志):
使 初始化 调用指定的函数。 FUNC 默认为 开始。 如果没有参数
假设该函数的元数为 0。否则,假设该函数的元数为
数量1,取列表 [参数1,参数2,...] 作为论证。 所有参数都传递为
原子。 看 初始化(3erl).

-setcookie 利用Cookies的:
将节点的 magic cookie 设置为 利用Cookies的,请参阅 erlang:set_cookie/2.

-关机时间 时间:
指定多长时间(以毫秒为单位) 初始化 进程被允许花费
关闭系统。 如果 时间 ms 已过去,所有仍然存在的进程都在
被杀了。 默认为 无穷大.

-sname 姓名:
使Erlang运行时系统成为分布式节点,类似于 -芋头,但
节点名称的主机名部分 姓名@主机 将是简称,不完整
合格的。

有时,如果 DNS(域名)是运行分布式 Erlang 的唯一方法
系统)未运行。 运行的节点之间不能进行通信
-sname 标志和那些与运行 -芋头 标志,因为节点名称必须是唯一的
分布式 Erlang 系统。

-smp [启用|自动|禁用]:
-smp enable-smp 启动 Erlang 运行时系统并启用 SMP 支持。 这
如果没有支持 SMP 的运行时系统可用,则可能会失败。 -smp 汽车 开始
Erlang 运行时系统启用 SMP 支持(如果可用且有多个)
检测到逻辑处理器。 -smp 关闭 启动没有 SMP 的运行时系统
支持。

注意:具有 SMP 支持的运行时系统并非在所有受支持的系统上都可用
平台。 另请参阅 +S 旗。

-版(模拟器标志):
使模拟器打印出其版本号。 与 ERL +V.

模拟器 旗帜


ERL 调用 Erlang 模拟器(虚拟机)的代码,该模拟器支持
以下标志:

+a 尺寸:
异步线程池中线程的建议堆栈大小(以千字为单位)。 有效范围
是 16-8192 千字。 默认建议堆栈大小为 16 KB,即 64
32 位架构上的千字节。 这个小的默认尺寸是自
异步线程的数量可能非常大。 默认大小对于驱动程序来说足够了
与 Erlang/OTP 一起交付,但对于其他动态来说可能不够大
链接到使用的驱动程序 driver_async() 功能。 请注意该值
通过只是一个建议,在某些平台上甚至可能会被忽略。

+A 尺寸:
设置异步线程池中的线程数,有效范围为0-1024。 如果线程
支持可用,默认为 10。

+B [c | d | i]:
这个 c 选项使 Ctrl-C 中断当前 shell 而不是调用模拟器
中断处理程序。 这 d 选项(与指定相同 +B 没有额外的选项)禁用
中断处理程序。 这 i 选项使模拟器忽略任何中断信号。

如果 c 选项用于 旧壳 在 Unix 上, Ctrl-C 将重新启动 shell 进程
而不是打断它。

请注意,在 Windows 上,此标志仅适用于 韦尔,不 ERL (旧壳)。 笔记
还有那个 Ctrl-Break 来代替 Ctrl-C 在Windows上。

+c true | false:
启用或禁用 更正:

true:
启用时间校正。 如果支持时间校正,则这是默认值
特定平台。

false:
禁用时间校正。

为了向后兼容,可以省略布尔值。 这被解释为
+c false.

+C 无时间扭曲 | 单时间扭曲 | 多重时间扭曲:
选择 模式:

无时间扭曲:
没有 时间 时尚 (默认)

单时间扭曲:
集成的 时间 时尚

多重时间扭曲:
时间 时尚

+d:
如果模拟器检测到内部错误(或内存不足),默认情况下它将
生成故障转储和核心转储。 然而,核心转储不会很
很有用,因为进程堆的内容被崩溃转储生成所破坏。

这个 +d 选项指示模拟器仅生成核心转储而不生成故障转储,如果
检测到内部错误。

调用 二郎:停止/ 1 使用字符串参数仍然会产生故障转储。 在Unix上
系统中,向仿真器进程发送 SIGUSR1 信号也会强制进行故障转储。

+e 联系电话:
设置 ETS 表的最大数量。

+EC:
强制 压缩 所有 ETS 表上的选项。 仅用于测试和评估。

+fnl:
VM 使用文件名,就好像它们是使用 ISO-latin-1 编码进行编码的一样,
禁止代码点超过 255 的 Unicode 字符。

参见 标准数据库 用户的 产品指南 有关 unicode 文件名的更多信息。 请注意,这
值也适用于命令行参数和环境变量(请参阅 标准数据库
用户的 产品指南).

+fnu[{w|i|e}]:
虚拟机使用文件名,就好像它们是使用 UTF-8(或其他一些系统)编码的
特定的 Unicode 编码)。 这是强制执行的操作系统上的默认设置
Unicode 编码,即 Windows 和 MacOS X。

这个 +fnu 开关后面可以跟着 w, ie 控制错误编码文件的方式
姓名须报告。 w 意味着警告被发送到 错误记录器 每当
目录列表中“跳过”编码错误的文件名, i 意味着那些
错误编码的文件名会被默默忽略 e 意味着API函数将
每当遇到错误编码的文件(或目录)名称时,都会返回错误。 w
是默认值。 注意 文件:read_link/1 如果链接总是返回错误
指向无效的文件名。

参见 标准数据库 用户的 产品指南 有关 unicode 文件名的更多信息。 请注意,这
值也适用于命令行参数和环境变量(请参阅 标准数据库
用户的 产品指南).

+fna[{w|i|e}]:
选择之间 +fnl+fnu 是根据当前区域设置完成的
操作系统,这意味着如果您将终端设置为 UTF-8 编码,则文件系统为
期望对文件名使用相同的编码。 这是所有操作的默认设置
除 MacOS X 和 Windows 之外的系统。

这个 +fna 开关后面可以跟着 w, ie。 如果区域设置这将生效
设置导致的行为 +fnu 被选中。 参见描述 +fnu 以上。
如果区域设置导致以下行为 +fnl 被选中,那么 w, ie
没有任何效果。

参见 标准数据库 用户的 产品指南 有关 unicode 文件名的更多信息。 请注意,这
值也适用于命令行参数和环境变量(请参阅 标准数据库
用户的 产品指南).

+hms 尺码:
将进程的默认堆大小设置为大小 尺码.

+hmbs 尺码:
将进程的默认二进制虚拟堆大小设置为 size 尺码.

+HPDS 尺码:
将进程的初始进程字典大小设置为大小 尺码.

+K true | false:
如果模拟器支持,则启用或禁用内核轮询功能。 默认
is false (已禁用)。 如果模拟器不支持内核轮询,并且 +K 标志是
传递给模拟器,启动时会发出警告。

+l:
启用自动加载跟踪,在加载代码时显示信息。

+L:
不要加载有关源文件名和行号的信息。 这会节省一些
内存,但异常不会包含有关文件名和行的信息
号码。

+MF标志 价值观:
内存分配器特定标志,请参阅 erts_alloc(3erl) 了解更多信息。

+n 宠物行为研究 :
控制端口信号的行为。

从 OTP-R16 开始,到端口的信号真正是异步传送的。 请注意信号
始终被记录为异步。 底层实现有,
然而,之前这些信号是同步传递的。 正确书写Erlang
程序应该能够毫无问题地处理这个问题。 现有 Erlang 中的错误
然而,对端口信号做出错误假设的程序可能很难识别
寻找。 引入此开关是为了至少使比较更容易
过渡时期的行为。 注意 Free Introduction is 弃用 截至其
介绍,并计划在 OTP-R17 中删除。 宠物行为研究 应该是其中之一
以下字符:

d:
默认。 异步信号。 向端口发送信号的进程可能
在信号传递到端口之前继续执行。

s:
同步信号。 向端口发送信号的进程将不会继续
执行直到信号发出。 应该 仅由 用于测试和
调试。

a:
异步信号。 作为默认值,但是发送信号的进程甚至会
更常见的是在信号传递到端口之前继续执行。
应该 仅由 用于测试和调试。

+电脑 范围:
设置系统认为可启发式打印的字符范围
字符串的检测。 这通常会影响 shell、调试器和 io:format
函数(当格式字符串中使用 ~tp 时)。

目前有两个值 范围 支持:

latin1:
默认。 只有 ISO-latin-1 范围内的字符才被认为是可打印的,
这意味着代码点 > 255 的字符永远不会被考虑
可打印并且包含此类字符的列表将显示为列表
通过工具获取整数而不是文本字符串。

统一:
确定列表是否包含所有可打印的 Unicode 字符时都会考虑
整数将以字符串语法显示。 这可能会产生意想不到的结果,如果
例如,您的字体不涵盖所有 Unicode 字符。

硒也 io:可打印范围/0.

+P 数量|旧版:
设置此系统同时存在的进程的最大数量(如果
联系电话 作为值传递。 有效范围为 联系电话 is [1024-134217727]

注意:实际选择的最大值可能比 联系电话 通过了。 现在
运行时系统经常(但并非总是)选择 2 的幂的值。这
然而,将来可能会改变。 可以通过以下方式检查实际选择的值
调用 erlang:system_info(进程限制).

默认值为 262144

If 遗产 作为值传递,用于分配进程的遗留算法
将使用标识符。 使用遗留算法,标识符将被分配在
严格递增的方式,直到达到最大可能的标识符。 笔记
该算法存在性能问题,并且可以在某些情况下
的情况下会非常昂贵。 遗留算法已被弃用,并且
遗产 计划在 OTP-R18 中删除该选项。

+Q 数量|旧版:
设置此系统同时存在的最大端口数(如果为 Number)
作为值传递。 有效范围为 联系电话 is [1024-134217727]

注意:实际选择的最大值可能比实际的大很多 联系电话 通过。
目前,运行时系统经常(但并非总是)选择一个值,该值是
2. 不过,这种情况将来可能会改变。 实际选择的值可以是
通过调用检查 erlang:system_info(端口限制).

通常使用的默认值是 65536。 但是,如果运行时系统能够
确定允许打开的文件描述符的最大数量以及该值
大于 65536,所选值将增加到大于或等于
可以打开的文件描述符的最大数量。

在 Windows 上,默认值设置为 8196 因为设置了正常的操作系统限制
高于大多数机器可以处理的水平。

之前的环境变量 ERL_MAX_PORTS 用于设置最大值
同时存在的端口数量。 该环境变量已被弃用,并且
计划在 OTP-R17 中删除,但仍然可以使用。

If 遗产 作为值传递,用于分配端口标识符的传统算法
将会被使用。 使用遗留算法,标识符将以严格的方式分配
增加时尚直到达到最大可能的标识符。 请注意,这
算法存在性能问题,并且在某些情况下可以
非常昂贵。 遗留算法已被弃用,并且 遗产 选项是
计划在 OTP-R18 中删除。

+R 发布号:
设置兼容模式。

默认情况下,分发机制不向后兼容。 该标志设置
模拟器与早期 Erlang/OTP 版本兼容 发布号。 该
版本号必须在范围内 <当前 释放>-2.. 发布>。 这
限制模拟器,使其能够与 Erlang 节点通信(如
以及 C 和 Java 节点)运行该早期版本。

注意:确保分布式 Erlang 系统的所有节点(Erlang、C 和 Java 节点)
属于相同的 Erlang/OTP 版本,或者来自两个不同的 Erlang/OTP 版本 X 和 Y,
协调 所有 Y 节点具有兼容模式 X。

+r:
强制在 realloc 上移动 ets 内存块。

+rg 读者组限制:
限制针对读取优化的读/写锁使用的读取器组数量
Erlang运行时系统中的操作。 默认情况下,读者组限制等于 64。

当调度器数量小于或等于读者组限制时,每个调度器
调度程序有自己的读者群。 当调度器数量大于
读者组限制,调度程序共享读者组。 共享读者群体降级
读锁定和读解锁性能下降,大量读者组降低
写锁性能,因此限制是读性能之间的权衡
写操作的操作和性能。 每个读者群体当前消费
每个读/写锁有 64 个字节。 另请注意,使用共享读取器的运行时系统
团体受益于 捆绑 调度 合乎逻辑的 处理器,由于读者群体
在调度程序之间更好地分配。

+S 调度程序:SchedulerOnline:
设置要创建的调度程序线程数和要设置为在线的调度程序线程数
当启用 SMP 支持时。 这两个值的最大值均为 1024。如果 Erlang
运行时系统能够确定配置的逻辑处理器的数量和
可用的逻辑处理器, 调度器 将默认为逻辑处理器
配置好,并且 在线调度程序 将默认使用可用的逻辑处理器;
否则,默认值为 1。 调度器 可以省略,如果 :调度在线
不是,反之亦然。 在线调度程序的数量可以在运行时通过以下方式更改
erlang:system_flag(schedulers_online, 在线调度程序).

If 调度器 or 在线调度程序 指定为负数,则值为
从配置或逻辑的默认逻辑处理器数量中减去
分别可用的处理器。

指定值 0 调度器 or 在线调度程序 重置数量
调度程序线程或在线调度程序线程分别为其默认值。

如果模拟器没有启用 SMP 支持,则该选项将被忽略(请参阅 -smp
旗)。

+SP 调度者百分比:调度者在线百分比:
+S 但使用百分比来设置要创建的调度程序线程的数量,
基于配置的逻辑处理器和设置在线的调度程序线程,基于
启用 SMP 支持后,逻辑处理器可用。 指定值必须
大于0。例如, +SP 50:25 将调度程序线程数设置为 50%
配置的逻辑处理器数量和在线调度程序线程数达到 25%
可用逻辑处理器的数量。 调度者百分比 可以省略,如果
:调度员在线百分比 不是,反之亦然。 在线调度器数量可以
在运行时通过更改 erlang:system_flag(schedulers_online, 在线调度程序).

该选项与交互 +S 设置。 例如,在具有 8 个逻辑核心的系统上
已配置且有 8 个可用逻辑核心,选项的组合 +S 4:4 +SP
50:25 (无论顺序)都会产生 2 个调度程序线程(50 个的 4%)和 1 个调度程序
在线话题(25 条中的 4%)。

如果模拟器没有启用 SMP 支持,则该选项将被忽略(请参阅 -smp
旗)。

+SDCPU DirtyCPUSchedulers:DirtyCPUSchedulersOnline:
设置要创建的脏CPU调度程序线程数和脏CPU调度程序
启用线程支持后要在线设置的线程。 两者的最大值
值为 1024,每个值进一步受到正常设置的限制
调度器:创建的脏CPU调度器线程数不能超过
创建的正常调度程序线程数以及脏 CPU 调度程序线程数
在线不能超过在线正常调度程序线程的数量(请参阅 +S+SP
标志以了解更多详细信息)。 默认情况下,创建的脏CPU调度线程数
等于创建的正常调度程序线程数和脏CPU数
在线调度程序线程数等于在线正常调度程序线程数。
脏CPU调度器 可以省略,如果 :DirtyCPUSchedulersOnline 不是,反之亦然。
在线脏 CPU 调度程序的数量可以在运行时通过以下方式更改
erlang:system_flag(dirty_cpu_schedulers_online, DirtyCPUSchedulers在线).

如果模拟器没有启用线程支持,则忽略此选项。
目前, Free Introduction 选项 is 试验 并且仅当模拟器被支持时
配置和构建时启用了对脏调度程序的支持(它被禁用
默认)。

+SDPCPU DirtyCPUSchedulersPercentage:DirtyCPUSchedulersOnlinePercentage:
+SDCPU 但使用百分比来设置脏CPU调度程序的数量
创建的线程数以及在线设置的脏 CPU 调度程序线程数
线程支持已启用。 指定的值必须大于 0。对于
例, +SDPCPU 50:25 将脏 CPU 调度程序线程数设置为 50%
配置的逻辑处理器和在线脏 CPU 调度程序线程的数量
25% 的逻辑处理器可用。 脏CPU调度程序百分比 可以省略
if :DirtyCPUSchedulers在线百分比 不是,反之亦然。 脏CPU数量
在线调度程序可以在运行时通过以下方式更改
erlang:system_flag(dirty_cpu_schedulers_online, DirtyCPUSchedulers在线).

该选项与交互 +SDCPU 设置。 例如,在具有 8 个逻辑的系统上
配置的核心数和 8 个可用的逻辑核心,选项的组合 +SDCPU
4:4 +SDPCPU 50:25 (无论顺序)都会导致 2 个脏 CPU 调度程序线程(50%
4) 和 1 个在线脏 CPU 调度程序线程(25 的 4%)。

如果模拟器没有启用线程支持,则忽略此选项。
目前, Free Introduction 选项 is 试验 并且仅当模拟器被支持时
配置和构建时启用了对脏调度程序的支持(它被禁用
默认)。

+SDIO IOS调度程序:
设置当线程支持时要创建的脏 I/O 调度程序线程的数量
已启用。 有效范围为 0-1024。 默认情况下,脏I/O调度器的数量
创建的线程数为10,与默认的线程数相同 异步
.

如果模拟器没有启用线程支持,则忽略此选项。
目前, Free Introduction 选项 is 试验 并且仅当模拟器被支持时
配置和构建时启用了对脏调度程序的支持(它被禁用
默认)。

+s标志 价值观:
调度特定标志。

+sbt 绑定类型:
设置调度程序绑定类型。

调度程序也可以使用以下方式绑定 +STBT 旗帜。 这些之间的唯一区别
两个标志是处理以下错误的方式:

* 特定平台不支持调度程序的绑定。

* 没有可用的 CPU 拓扑。 那是运行时系统无法
自动检测CPU拓扑,不 用户 定义 中央处理器 拓扑 被设定。

如果发生以下任何错误 +sbt 已通过,运行时系统将
打印错误消息,并拒绝启动。 如果发生以下任何错误 +STBT
已通过,运行时系统将默默地忽略该错误,并启动
使用未绑定的调度程序。

目前有效 绑定类型s:

u:
未绑定 - 调度程序不会绑定到逻辑处理器,即操作
系统决定调度程序线程执行的位置以及何时迁移它们。 这
是默认值。

ns:
不扩散 - 具有接近调度程序标识符的调度程序将被绑定为尽可能接近
在硬件中可能。

ts:
线程扩展 - 线程是指硬件线程(例如Intel 的超线程)。
具有低调度程序标识符的调度程序将绑定到第一个硬件
每个核心的线程,那么具有较高调度程序标识符的调度程序将是
绑定到每个核心的第二个硬件线程,等等。

ps:
处理器扩展 - 调度程序将像这样传播 线程扩展,也结束了
物理处理器芯片。

s:
传播 - 调度程序将尽可能分散。

尼特斯:
无节点线程传播 - 喜欢 线程扩展,但如果有多个 NUMA(非均匀
内存访问)节点存在,调度程序将分布在一个 NUMA 节点上
时间,即一个 NUMA 节点的所有逻辑处理器都将绑定到调度器
序列。

神经网络:
no_node_processor_spread - 喜欢 处理器扩展,但是如果有多个 NUMA 节点
存在时,调度程序将一次分布在一个 NUMA 节点上,即所有逻辑
一个NUMA节点的处理器将按顺序绑定到调度器。

tnps:
thread_no_node_processor_spread - 组合 线程扩展
no_node_processor_spread。 调度程序将分布在硬件线程上
NUMA 节点,但调度程序只会分布在一个处理器内部
一次 NUMA 节点。

db:
默认绑定 - 以默认方式绑定调度程序。 目前默认是
thread_no_node_processor_spread (将来可能会改变)。

目前仅在较新的 Linux、Solaris、FreeBSD、
和Windows系统。

如果没有可用的CPU拓扑时 +sbt 标志已处理并且 绑定类型 是的
其他类型 u,运行时系统将无法启动。 CPU拓扑结构可以是
使用定义 +sct 旗帜。 请注意, +sct 可能必须先通过标志
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 +sbt 命令行上的标志(如果没有自动生成 CPU 拓扑)
检测到)。

运行时系统默认会 而不去 将调度程序绑定到逻辑处理器。

注意: 如果 Erlang 运行时系统是唯一绑定的操作系统进程
线程到逻辑处理器,这提高了运行时系统的性能。
但是,如果其他操作系统进程(例如另一个 Erlang 运行时)
system)还将线程绑定到逻辑处理器,可能会有性能
代替处罚。 在某些情况下,这种性能损失可能会很严重。 如果这是
在这种情况下,建议您不要绑定调度程序。

调度程序如何绑定很重要。 例如,在人数较少的情况下
在线运行的进程比调度程序多,运行时系统会尝试迁移
进程到具有低调度程序标识符的调度程序。 调度程序越多
分布在硬件上,运行时系统可用的资源就越多
在这种情况下。

注意: 如果调度程序绑定失败,通常会被默默地忽略。 这自从
并不总是能够验证有效的逻辑处理器标识符。 如果出现错误
被举报后,将向有关部门举报 错误记录器。 如果您想验证
调度程序实际上已按要求绑定,调用
erlang:system_info(调度程序绑定).

+sbwt 无|非常短|短|中|长|非常长:
设置调度程序忙等待阈值。 默认为 中等。 阈值决定如何
长时间的调度者应该在睡觉前忙完工作后等待。

注意: 该标志可能随时被删除或更改,恕不另行通知。

+scl 真|假:
启用或禁用负载的调度程序压缩。 默认情况下调度程序压缩
负载已启用。 启用后,负载平衡将努力实现负载分配
这会导致尽可能多的调度程序线程被完全加载(即不运行
失业了)。 这是通过将负载(例如可运行进程)迁移到
当调度程序经常耗尽工作时,使用较小的一组调度程序。 什么时候
禁用,调度程序耗尽工作的频率将不会被考虑在内
通过负载平衡逻辑进行帐户。
+scl false 类似于 +子 true 不同的是 +子 true 也将
平衡调度程序之间的调度程序利用率。

+sct CPU拓扑结构:

* = 整数(); ,尤其是 0 =< =< 65535

* = -

* = |

* = , |

* = L

* = 时间 | t

* = C | C

* = | p

* = | n

* = |


* CPU拓扑结构 = : |

设置用户定义的 CPU 拓扑。 用户定义的CPU拓扑将覆盖任何
自动检测CPU拓扑。 CPU 拓扑用于以下情况: 捆绑
调度 合乎逻辑的 处理器.

大写字母表示真实标识符,小写字母表示假标识符
标识符仅用于拓扑描述。 标识符作为真实的传递
当尝试访问特定的标识符时,运行时系统可能会使用标识符
硬件,如果它们不正确,则行为未定义。 伪造的逻辑CPU
不接受标识符,因为定义 CPU 拓扑没有意义
没有真正的逻辑CPU标识符。 线程、核心、处理器和节点标识符
可能会被排除在外。 如果省略,线程 ID 默认为 t0,核心id默认为 c0,
处理器 ID 默认为 p0,并且节点 id 将保持未定义。 要么每个逻辑
处理器必须属于一个且仅一个 NUMA 节点,或者没有任何逻辑处理器
属于任意 NUMA 节点。

既有增加也有减少 s 是允许的。

NUMA 节点标识符是系统范围的。 也就是说,系统上的每个 NUMA 节点都必须
有一个唯一的标识符。 处理器标识符也是系统范围的。 核
标识符是处理器范围的。 线程标识符是核心范围的。

标识符类型的顺序暗示​​了CPU拓扑的层次结构。 有效的
订单是
。 也就是说,线程是
核心是处理器的一部分,处理器是 NUMA 节点的一部分,或者线程是处理器的一部分
核心是 NUMA 节点的一部分,而 NUMA 节点是处理器的一部分。 CPU拓扑结构
可以由处理器外部和处理器内部 NUMA 节点组成,只要
每个逻辑处理器属于一个且仅一个 NUMA 节点。 如果 is
省略的话,它的默认位置将在之前 。 也就是说,默认是
处理器外部 NUMA 节点。

如果在一个标识符列表中使用 :

* 必须是标识符列表。

* 除了以下至少一种其他标识符类型 还必须有一个
标识符列表。

* 所有标识符列表必须产生相同数量的标识符。

一个简单的例子。 单个四核处理器可以这样描述:

% erl +sct L0-3c0-3
1> erlang:system_info(cpu_topology).
[{处理器,[{核心,{逻辑,0}},
{核心,{逻辑,1}},
{核心,{逻辑,2}},
{核心,{逻辑,3}}]}]

稍微复杂一点的例子。 两个四核处理器。 每个处理器在其
自己的 NUMA 节点。 逻辑处理器的顺序有点奇怪。 这个按顺序
给出一个更好的标识符列表示例:

% erl +sct L0-1,3-2c0-3p0N0:L7,4,6-5c0-3p1N1
1> erlang:system_info(cpu_topology).
[{节点,[{处理器,[{核心,{逻辑,0}},
{核心,{逻辑,1}},
{核心,{逻辑,3}},
{核心,{逻辑,2}}]}]},
{节点,[{处理器,[{核心,{逻辑,7}},
{核心,{逻辑,4}},
{核心,{逻辑,6}},
{核心,{逻辑,5}}]}]}]

只要真实标识符正确,就可以传递如下的 CPU 拓扑:
不是 CPU 拓扑的正确描述。 当小心使用时,这实际上可以
非常有用。 这是为了欺骗模拟器按照您的方式绑定其调度程序
想。 例如,如果你想在同一个上运行多个 Erlang 运行时系统
机器,您希望减少使用的调度程序数量并操纵 CPU
拓扑,以便它们绑定到不同的逻辑 CPU。 一个例子,有两个 Erlang
四核机器上的运行时系统:

% erl +sct L0-3c0-3 +sbt db +S3:2 -分离-noinput -noshell -sname 一
% erl +sct L3-0c0-3 +sbt db +S3:2 -分离-noinput -noshell -sname 二

在此示例中,每个运行时系统都有两个在线调度程序,并且所有
在线调度程序将在不同的内核上运行。 如果我们改为在线调度程序
在一个运行时系统上,在另一个运行时系统上有三个在线调度程序,所有调度程序
online 仍然会在不同的内核上运行。

请注意,伪造的 CPU 拓扑并不反映真实 CPU 拓扑的外观
类似可能会降低运行时系统的性能。

欲了解更多信息,请参阅 erlang:system_info(cpu_topology).

+赛西奥 真|假:
启用或禁用急切检查 I/O 调度。 当前默认值是 true。 该
默认值已更改为 falsetrue 从 erts 7.0 版开始。 之前的行为
该标志的引入对应于 +赛西奥 false.

该标志在调度程序检查可能执行的 I/O 操作时生效,
以及何时执行此类 I/O 操作。 正如参数名称所暗示的那样,
当以下情况时,调度程序将更渴望检查 I/O: true 已通过。 然而这
也意味着未完成的 I/O 操作的执行不会被优先考虑
与当时的程度相同 false 通过了。

erlang:system_info(eager_check_io) 返回此参数的值,当
启动虚拟机。

+sfwi 间隔:
设置调度程序强制唤醒间隔。 所有运行队列将被扫描 间隔
毫秒。 虽然系统中存在睡眠调度程序,但其中一个调度程序将
当发现每个非空运行队列时被唤醒。 一个 间隔 为零会禁用此功能
功能,这也是默认功能。

此功能已被引入作为长时间执行的本机的临时解决方法
代码,以及在 OTP 中无法正确进行缩减的本机代码。 当这些错误
已修复 +sfwi 标志将被删除。

+STBT 绑定类型:
尝试设置调度程序绑定类型。 与 +sbt 标志除了如何
一些错误已得到处理。 有关更多信息,请参阅文档 +sbt
旗。

+子 真|假:
启用或禁用 调度 采用 负载平衡。 默认调度程序
利用率平衡被禁用,而是调度程序压缩负载
启用它将努力实现负载分配,从而导致尽可能多的调度程序
线程尽可能被完全加载(即,不会耗尽工作)。 当调度程序
启用利用率平衡后,系统将尝试平衡调度程序
调度程序之间的利用率。 也就是说,争取平等的调度程序利用率
所有调度程序。
+子 true 仅在运行时系统检测并使用
单调递增的高分辨率时钟。 在其他系统上,运行时系统
将无法启动。
+子 true 暗示 +scl false。 和...之间的不同 +子 true+scl false is
+scl false 不会尝试平衡调度程序的利用率。

+SWCT 非常渴望|渴望|中等|懒惰|非常懒惰:
设置调度程序唤醒清理阈值。 默认为 中等。 该标志控制如何
由于某些清理操作,急切的调度程序应该请求唤醒。
当使用惰性设置时,可以取消更多未完成的清理操作
当调度程序空闲时。 当使用 eager 设置时,调度程序将更多
频繁被唤醒,可能会增加 CPU 利用率。

注意: 该标志可能随时被删除或更改,恕不另行通知。

+Sws 默认|旧版:
设置调度程序唤醒策略。 erts-5.10/OTP-R16A 中的默认策略已更改。 这
策略以前称为 提案 在 OTP-R15 中。 这 遗产 使用了策略
默认从 R13 到 R15。

注意: 该标志可能随时被删除或更改,恕不另行通知。

+swt 非常低|低|中|高|非常高:
设置调度程序唤醒阈值。 默认为 中等。 阈值决定何时
当工作量超过当前清醒状态时可以处理的工作量时,唤醒睡眠调度程序
调度程序存在。 阈值低会导致提前唤醒,阈值高会导致提前唤醒
会导致稍后唤醒。 早期唤醒会将工作分配给多个
调度程序速度更快,但工作会更容易在调度程序之间切换。

注意: 该标志可能随时被删除或更改,恕不另行通知。

+spp 布尔:
设置端口并行性的默认调度程序提示。 如果设置为 true,虚拟机将
安排端口任务,这样做将提高系统的并行性。 如果设置为
false,VM 将尝试立即执行端口任务,从而改善端口处的延迟
并行性的代价。 如果没有传递该标志,则默认调度程序提示
目前端口并行度是 false。 可以在中检查使用的默认值
运行时通过调用 erlang:system_info(端口并行度)。 默认可以是
通过传递覆盖端口创建 排比 选项 开放端口/2.

+sss 尺寸:
调度程序线程的建议堆栈大小(以千字为单位)。 有效范围为 4-8192
千字。 默认堆栈大小取决于操作系统。

+t 尺寸:
设置VM可以处理的最大原子数。 默认值为 1048576。

+T Level:
启用修改计时并设置修改计时级别。 目前有效范围是
0-9。 运行时系统的时间将会改变。 高水平通常意味着
比低水平变化更大。 更改时间对于查找非常有用
与计时相关的错误。

目前,修改的时间会影响以下内容:

流程 产卵:
一个进程调用 , 产卵链接, 产卵监视器产卵选择 将被安排
通话结束后立即退出。 当更高的修改时序级别是
使用时,呼叫者在被调度出去后也会休眠一段时间。

语境 减少:
进程在被调度之前允许使用的减少量是
增加或减少。

输入 减少:
检查 I/O 之前执行的减少量会增加或减少。

注意: 启用修改计时后,性能会受到影响。 这个标志是 仅由
用于测试和调试。 另请注意 还给返回自 追踪
在生成 BIF 上进行跟踪时,消息将会丢失。 该标志可能会被删除或
随时更改,恕不另行通知。

+V:
使模拟器打印出其版本号。

+v:
冗长。

+W w | i | e:
设置警告消息的映射 错误记录器。 发送到错误的消息
使用警告例程之一的记录器可以映射到错误(+W e),
警告(+W w),或信息报告(+W i)。 默认是警告。 当前映射
可以使用检索 error_logger:warning_map/0。 看 错误记录器(3erl) 为了更进一步的
信息。

+z标志 价值观:
各种旗帜。

+zdbbl 尺寸:
设置分发缓冲区繁忙限制(dist_buf_busy_limit)以千字节为单位。 有效的
范围是 1-2097151。 默认值为 1024。

更大的缓冲区限制将允许进程缓冲更多的传出消息
分配。 当达到缓冲区限制时,发送进程将被终止
暂停,直到缓冲区大小缩小。 缓冲区限制是每个发行版的
渠道。 较高的限制将提供更低的延迟和更高的吞吐量,但代价是
更高的内存使用率。

+zdntgc :
设置延迟节点表垃圾回收时间(延迟节点表GC)in
秒。 有效值为 无穷大 或 [0-100000000] 范围内的整数。
预设为60。

未被引用的节点表条目将在表中停留至少
该参数确定的时间量。 缠绵防止重复
表中的删除和插入操作不会发生。

环境 变数


ERL_CRASH_DUMP:
如果模拟器需要写入故障转储,则该变量的值将是
故障转储文件的文件名。 如果未设置该变量,则崩溃的名称
转储文件将是 erl_crash.dump 在当前目录中。

ERL_CRASH_DUMP_NICE:
Unix的 系统:如果模拟器需要写入故障转储,它将使用以下值
该变量用于设置进程的nice值,从而降低其优先级。 这
允许的范围是 1 到 39(较高的值将替换为 39)。 最高的
值 39 将为该进程赋予最低优先级。

ERL_CRASH_DUMP_SECONDS:
Unix的 系统:该变量给出模拟器将运行的秒数
允许花时间编写故障转储。 当给定的秒数过去后,
仿真器将由 SIGALRM 信号终止。

如果环境变量是 而不去 设置或设置为零秒,
ERL_CRASH_DUMP_SECONDS=0,运行时系统甚至不会尝试写入崩溃
转储文件。 它只会终止。

如果环境变量设置为负值,例如 ERL_CRASH_DUMP_SECONDS=-1,
运行时系统将无限期地等待写入故障转储文件。

该环境变量与 if 在跑:

ERL_CRASH_DUMP_SECONDS=0:
完全禁止写入故障转储文件,从而重新启动运行时系统
立即地。 这和不设置环境变量是一样的。

ERL_CRASH_DUMP_SECONDS=-1:
将环境变量设置为负值将导致终止
运行时系统等待故障转储文件完全写入。

ERL_CRASH_DUMP_SECONDS=S:
会等待 S 秒完成故障转储文件,然后终止
运行时系统。

ERL_AFLAGS:
该环境变量的内容将被添加到命令的开头
线为 ERL.

这个 -额外 旗帜经过特殊处理。 它的范围在环境结束时结束
可变的内容。 后面的参数 -额外 标志在命令行上移动
-额外 部分,即命令行的末尾,跟随在 -额外
旗。

ERL_ZFLAGSERL_FLAGS:
这些环境变量的内容将被添加到命令的末尾
线为 ERL.

这个 -额外 旗帜经过特殊处理。 它的范围在环境结束时结束
可变的内容。 后面的参数 -额外 标志在命令行上移动
-额外 部分,即命令行的末尾,跟随在 -额外
旗。

ERL_LIBS:
该环境变量包含附加库目录的列表,
代码服务器将搜索应用程序并添加到代码路径。 看 (3erl).

ERL_EPMD_地址:
此环境变量可以设置为以逗号分隔的 IP 地址列表,在
在这种情况下 EPMD 守护进程将只侦听指定的地址和
环回地址(如果未指定,则隐式添加到列表中)。

ERL_EPMD_PORT:
该环境变量可以包含与通信时使用的端口号
EPMD。 在大多数情况下,默认端口可以正常工作。 可以指定不同的端口
允许独立集群的节点在同一主机上共存。 a 中的所有节点
集群必须使用相同的 epmd 端口号。

配置


标准 Erlang/OTP 系统可以重新配置以更改默认行为
启动

这个 .erlang 启动 文件:
当Erlang/OTP启动时,系统会在目录中搜索名为.erlang的文件
Erlang/OTP 启动的目录。 如果没有找到,则用户的主目录是
搜索 .erlang 文件。

如果找到 .erlang 文件,则假定它包含有效的 Erlang 表达式。 这些
表达式的计算就像它们是 shell 的输入一样。

典型的 .erlang 文件包含一组搜索路径,例如:

io:format("正在 HOME/.erlang\n 中执行用户配置文件",[]).
代码:add_path(“/home/calvin/test/ebin”)。
代码:add_path(“/home/hobbes/bigappl-1.2/ebin”)。
io:format(".erlang rc 完成\n",[]).

用户默认 外壳默认值:
shell 中没有模块名称前缀的函数被假定为
功能对象(Funs)、内置函数(BIF)或属于模块
user_default 或 shell_default。

要包含私有 shell 命令,请在模块 user_default 中定义它们并添加
以下参数作为 .erlang 文件中的第一行。

代码:load_abs(“..../user_default”)。

呃:
如果 .erlang 的内容被更改并且 user_default 的私有版本被更改
定义后,可以定制 Erlang/OTP 环境。 更强大的改变
可以通过在启动脚本 erl 中提供命令行参数来实现。 参考
ERL(1)和 初始化(3erl) 了解更多信息。

使用 onworks.net 服务在线使用 erl


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。