在Haskell中使用带命令行参数的ThreadScope进行评测
我从中了解到,要使用ThreadScope,我需要使用eventlog和rtsoptions进行编译,例如“在Haskell中使用带命令行参数的ThreadScope进行评测,haskell,haskell-stack,threadscope,Haskell,Haskell Stack,Threadscope,我从中了解到,要使用ThreadScope,我需要使用eventlog和rtsoptions进行编译,例如“-rtsopts-eventlog-threaded” 我正在使用堆栈,因此我的编译调用如下所示: $ stack ghc -- -O2 -funfolding-use-threshold=16 -optc-O3 -rtsopts -eventlog -threaded mycoolprogram.hs 通常情况下,我会: $ stack ghc -- -O2 -funfolding-u
-rtsopts-eventlog-threaded
”
我正在使用堆栈,因此我的编译调用如下所示:
$ 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个位置参数:
./mycoolprogram arg1 arg2
我正在尝试添加RTS选项+RTS-N2-l
,如下所示:
./mycoolprogram arg1 arg2 -- +RTS -N2 -l
或
如何在运行程序时同时将参数放入
System.Environment.getArgs
(如eg)并包含这些分析标志?正如@sjakobi所说,您可以使用+RTS-RTS其他参数
或其他参数+RTS…
表单,但也可以在环境变量GHCRTS
中传递它们:
GHCRTS='-N2 -l' ./mycoolprogram arg1 arg2
如@sjakobi所说,您可以使用
+RTS-RTS其他参数
或其他参数+RTS…
表单,但也可以在环境变量GHCRTS
中传递它们:
GHCRTS='-N2 -l' ./mycoolprogram arg1 arg2
有关更多信息,请访问。/mycoolprogram arg1 arg2+RTS-N2-l或
/mycoolprogram+RTS-N2-l-RTS arg1 arg2
应能正常工作。/mycoolprogram arg1 arg2+RTS-N2-l
或/mycoolprogram+RTS-N2-l-RTS arg1 arg2
应能正常工作。