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
# ...