Nei*_*ell 7 haskell haskell-criterion
我有一个Criterion基准测试,每个bgroup测试对应一个测试,并且每个测试中bgroup有两个bench不同选项的测试值.例如:
main = defaultMain
[bgroup "test1" [bench "v1" test1_1, bench "v2" test1_2]
,bgroup "test2" [bench "v1" test2_1, bench "v2" test2_2
-- lots more tests
]
Run Code Online (Sandbox Code Playgroud)
在每个测试中bgroup,两个bench测试是可比的.但是,test1需要2000微秒,而test2需要45微秒.概览图(对我想要做的最有用)在同一轴上显示不同的测试,因此我可以清楚地看到差异test1,但test2很难看到.
是否可以将每个标准化bgroup用于绘图?或者在不同的轴上显示它们?或者我应该转储CSV数据并绘制我想要的内容吗?
这个问题绝对是 Criterion 的缺点之一。我多次被同样的问题困扰。
我解决这个问题的标准方法是为每个比较单元生成一个单独的可执行文件。benchmarkCabal 的最新版本中添加了一个特殊目标,因此我为.cabal文件中的每个比较单元声明了一个基准目标。然后我可以使用 运行每个比较cabal bench [target-name]。是的,这一切远非令人安慰,但这是我能想到的最好的。