当我运行时,./MyProgram +RTS -N4
我希望我的程序自动检测它在 4 个内核上运行并创建 4 个火花来处理数据集。现在,每次我想更改此选项时,我都会重新编译,这很烦人。
问问题
133 次
1 回答
2
回答您最初的问题:运行时选项是 GHC 特定的,并且 GHC 提供了一个模块,可让您查看传递给程序的完整参数列表(包括+RTS
和) :.-RTS
GHC.Environment
这是一个小演示:
import GHC.Environment (getFullArgs)
import System.Environment (getArgs)
main = do
getFullArgs >>= mapM putStrLn
putStrLn "=="
getArgs >>= mapM putStrLn
return ()
编译程序ghc App.hs --make -rtsopts -threaded
会在执行时产生以下结果:
./App hello +RTS -N4 -RTS ook ooks
hello
+RTS
-N4
-RTS
ook
ooks
==
hello
ook
ooks
于 2012-12-12T18:22:24.817 回答