Performance 测试时使用ekg和堆栈

Performance 测试时使用ekg和堆栈,performance,haskell,haskell-stack,Performance,Haskell,Haskell Stack,我已经编写了一些耐久性测试,我使用堆栈测试运行这些测试。我还使用它来监控性能。该方案建议: 要充分利用此模块,必须首先在运行时系统中启用GC统计信息收集。要启用GC统计信息收集,请使用 +RTS -T 或者用 -with-rtsopts=-T 我知道堆栈支持--profile和--trace选项,但是我找不到任何将+RTS-t选项传递给测试程序的选项。是否有任何标志可用于实现此效果?正如Mark所说,使用--test arguments为测试应用程序提供命令行参数: stack test--

我已经编写了一些耐久性测试,我使用
堆栈测试运行这些测试。我还使用它来监控性能。该方案建议:

要充分利用此模块,必须首先在运行时系统中启用GC统计信息收集。要启用GC统计信息收集,请使用

+RTS -T
或者用

-with-rtsopts=-T
我知道堆栈支持
--profile
--trace
选项,但是我找不到任何将
+RTS-t
选项传递给测试程序的选项。是否有任何标志可用于实现此效果?

正如Mark所说,使用
--test arguments
为测试应用程序提供命令行参数:

stack test--test arguments=“+RTS-T”
如果不使用
堆栈测试
而是使用
堆栈执行
,请确保在
堆栈
本身中禁用RTS解析:

stack--RTS-exec+RTS

另一种可能性是在
.cabal
(或
package.yaml
(如果使用
hpack
)文件中设置编译器选项:


由于
-T
选项的开销很小,因此这种方法不需要将任何标志传递到
stack
以获得相关的
ekg
指标。

我不知道这是否有帮助,但您可以像这样向测试可执行文件传递参数:
stack test--test arguments“my arg”
ghc-options:
# ...
- -with-rtsopts=-N
# ... Add the -T options on top of the other `RTS` options:
- -with-rtsopts=-T
# ...