我写了一些耐力测试,我和stack test
一起运行。我还使用ekg
来监视性能。这套方案建议:
要充分利用这个模块,您必须首先在运行时系统中启用GC统计信息收集。若要启用GC统计信息收集,请使用 +RTS -T 或者用 -有-rtsopts=-T
我知道堆栈支持--profile
和--trace
选项,但我找不到将+RTS -T
选项传递给测试程序的任何选项。有什么旗子可以用来达到这个效果吗?
发布于 2018-01-04 13:58:24
正如Mark所说,使用--test-arguments
为您的测试应用程序提供命令行参数:
stack test --test-arguments="+RTS -T"
如果不使用stack test
但使用stack exec
,请确保禁用stack
本身中的RTS解析:
stack --RTS exec <executable-name> +RTS <rts-options>
发布于 2018-01-04 14:30:07
另一种可能是在.cabal
(如果使用hpack
)文件中设置编译器选项:
ghc-options:
# ...
- -with-rtsopts=-N
# ... Add the -T options on top of the other `RTS` options:
- -with-rtsopts=-T
# ...
由于-T
选项的开销很小,这种方法不需要向stack
传递任何标志就可以获得相关的ekg
指标。
https://stackoverflow.com/questions/48093503
复制相似问题