ThreadScope核心号码的含义是什么?

时间:2014-03-28 16:18:49

标签: haskell

当我想描述我的haskell程序时,我对ThreadScope的使用感到困惑,并按照以下步骤操作:

> ghc -threaded -eventlog -rtsopts --make test.hs
> test.exe +RTS -ls -N2
> threadscope test.exe.eventlog

我在threadscope中找到了两个核心,但是当我修改第二步时:

> test.exe +RTS -ls -N6

(我的计算机实际上有四个核心),threadscope在其用户界面中显示了6个核心,这意味着什么?

1 个答案:

答案 0 :(得分:2)

这不是核心,但是HECs

  

程序显示每个Haskell执行上下文(HEC)上的活动,该活动大致对应于操作系统线程。

-N[x]会将线程数设置为x

  

-N[x]

     
    

何时使用 x 同步线程                   运行程序。通常 x                   应该选择匹配的CPU核心数量                   机。例如,                   在我们可能会使用的双核机器上                   +RTS -N2 -RTS

         

省略 x ,                   即+RTS -N -RTS,让运行时                   选择 x 本身的值                   根据您机器中的处理器数量而定。

  

由于您使用了-N6,因此您会观察到6个HEC。