18得票1回答
基准测试过滤器和分区

我正在测试列表的partition函数性能,并得到了一些奇怪的结果。 我们知道partition p xs == (filter p xs, filter (not . p) xs),但是我们选择第一种实现方式,因为它只需要对列表进行单次遍历。然而,我的测试结果表明,使用两次遍历的实现方式可...

15得票1回答
如何使用 Criterion 来衡量 Haskell 程序的性能?

我正在尝试使用Criterion框架来测量一个简单的Haar DWT程序的性能。(它的速度错误地很慢,但我会在另一个问题中讨论这个)。不幸的是,我找不到任何好的文档。我的两个主要问题是: 如何将数据从一个基准传递到另一个基准?我想计时程序的每个阶段。 采样如何工作,并避免使用其先前的计算进...

15得票2回答
如何获得一致的标准基准或解释跨越多次运行的结果?

我正在尝试优化一些代码,使用criterion来比较例如将INLINE pragma添加到函数的效果。但是我发现结果在重新编译和运行之间不一致。 我需要知道如何使结果在不同的运行中保持一致,以便我可以进行比较,或者如何评估基准测试是否可靠,即(我想)如何解释有关方差,“时钟调用成本”等细节。...

15得票1回答
如何可靠地比较Haskell和C的运行时间?

我使用Criterion库编写了我的Haskell函数的基准测试。现在我正在用C实现相同的算法,以与Haskell进行性能比较。问题是如何可靠地做到这一点?Criterion会执行很多花哨的操作,如考虑时钟调用开销和对结果进行统计分析。我猜想,如果我只测量我的C函数所需的时间,它将无法与Cri...

13得票1回答
GHC中的跨模块优化

我有一个非递归函数,用于计算最长公共子序列,经过测试表现良好(使用ghc 7.6.1编译并使用-O2 -fllvm标志),如果在同一模块中使用Criterion进行测量。另一方面,如果我将该函数转换为模块,仅导出该函数(按照这里的建议),然后再次使用Criterion进行测量,则会出现约2倍的...

11得票3回答
从标准生成HTML输出

在 criterion 的页面 http://bos.github.com/criterion/ 中有一个HTML输出的良好示例。 哪个命令行选项用于生成此输出? 针对相关问题的一个答案声称存在这种输出,但使用--help时似乎没有显示出来。

10得票1回答
在不同大小的输入上运行Haskell基准测试

我经常需要比较同一函数的多个实现的运行时性能。对于单个输入,criterion 是一个不错的工具。 但是有没有一种简单的方法来绘制代码在不同输入大小下的性能,例如查看算法复杂度? 理想情况下,我会将类型为Benchmarkable r => [(String, Int -> r...

10得票2回答
如何为Criterion基准测试创建数据?

我正在使用 criterion 来对我的 Haskell 代码进行基准测试。我正在进行一些需要随机数据的重度计算。我已经像这样编写了我的主要基准文件:main :: IO () main = newStdGen >>= defaultMain . benchmarks bench...

8得票2回答
Criterion库捕获的命令行选项

我已经使用了 criterion 和 cmdargs 库。 当我完全不使用 cmdargs 编译程序并运行它时,例如执行 "./prog --help" 命令,那么我会从 criterion 中得到一些不需要的响应,包括可能的选项和运行次数等。 当我按照以下方式编译并运行它时,命令行选项首...

8得票1回答
Scala标准是什么?

是否有一个与 criterion 相当的 Scala(或 Java)库?我不仅仅是在谈论基准测试库:请查看 criterion 对 HTML 结果的处理。