3

実行するときに./MyProgram +RTS -N4、プログラムが4つのコアで実行されていることを自動的に検出し、データセットを処理するために4つのスパークを作成するようにします。現在、このオプションを変更するたびに再コンパイルしていますが、これは面倒です。

4

1 に答える 1

2

元の質問への回答: ランタイム オプションは GHC 固有であり、GHC が提供するモジュールがあり、プログラムに渡された完全な引数リスト (+RTSとを含む) を表示できます: 。-RTSGHC.Environment

ここにちょっとしたデモンストレーションがあります:

import GHC.Environment (getFullArgs)
import System.Environment (getArgs)

main = do
    getFullArgs >>= mapM putStrLn
    putStrLn "=="
    getArgs >>= mapM putStrLn
    return ()

プログラムを as としてコンパイルする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 に答える