【问题标题】:Using Erlang for testing.使用 Erlang 进行测试。
【发布时间】:2010-11-08 13:55:49
【问题描述】:

我可以在具有四个或更多内核的单核 erlang 程序的计算机上进行测试吗?

在不使用任何参数的情况下启动时,erlang smp 假定为 2:2,如下所示:

Erlang R14A (erts-5.8) [smp: 2:2] [rq: 2] [async-threads: 0]

我使用的是 Pentium 4,这是否意味着我有两个内核?

【问题讨论】:

    标签: erlang smp


    【解决方案1】:

    默认情况下,每个可用内核启动一个调度程序,并使用多个运行队列(每个调度程序一个;自 R13 起可用)。在你的 shell 中[smp 2:2] 意味着你有两个调度程序在两个内核上运行; [rq: 2] 表示您正在使用两个运行队列。

    如果您想更改调度器的数量,例如四个调度器以erl +S 4 开头。

    确保如果您在单核系统上编译 erlang,请使用 --enable-smp-support 在配置脚本中启用 smp。否则您可能无法使用多个调度程序。

    【讨论】:

    • 我有点困惑。如果我在单核上运行erlang可以用来模拟其他数量的smp核吗?例如,如果您在单核 4 核中运行模拟所花费的时间与直接运行 4 核相同吗?你可以做这个测试吗?
    • 每个调度器都是一个独立的操作系统进程,默认情况下每个内核启动一个。尽管如此,运行多个调度程序是可能的,但这当然不会使您的计算机“更快”。单核机器是一种特殊情况,因为如果您构建没有 SMP 的 VM,与启用 SMP 的机器相比,它可能会稍作调整(因为使用较少的锁)。
    猜你喜欢
    • 2012-11-11
    • 2021-09-28
    • 1970-01-01
    • 2013-07-08
    • 2017-10-13
    • 1970-01-01
    • 2015-05-23
    • 2013-02-05
    • 2011-10-10
    相关资源
    最近更新 更多