我从here了解到使用ThreadScope我需要使用事件日志和rtsoptions进行编译,例如" -rtsopts -eventlog -threaded
"
我正在使用Stack,所以我的编译调用如下:
$ stack ghc -- -O2 -funfolding-use-threshold=16 -optc-O3 -rtsopts -eventlog -threaded mycoolprogram.hs
通常,我这样做:
$ stack ghc -- -O2 -funfolding-use-threshold=16 -optc-O3 -threaded mycoolprogram.hs
编译好。但是,我的程序需要2个且只有2个位置参数:
./mycoolprogram arg1 arg2
我试图添加RTS选项+RTS -N2 -l
,如下所示:
./mycoolprogram arg1 arg2 -- +RTS -N2 -l
或者
./mycoolprogram +RTS -N2 -l -- arg1 arg2
如何使用参数System.Environment.getArgs
同时运行我的程序(例如here)并包含这些分析标记?
答案 0 :(得分:2)
正如@sjakobi所说,您可以使用+RTS ... -RTS other arguments
或other arguments +RTS ...
表单,但也可以选择在环境变量GHCRTS
中传递它们:
GHCRTS='-N2 -l' ./mycoolprogram arg1 arg2
GHC users guide中提供了更多信息。