cost 288 ms
为什么只对 function 设计进行微小的更改就从根本上改变了标准基准的结果? - Why only minor change to function design radically changes result of criterion benchmark?

我有两个大致相同的源文件。 唯一的区别是,在第一种情况下 function 作为参数传递,而在第二种情况下 - 值。 第一种情况: 第二种情况: 我注意到,在对向量进行基准测试期间,未装箱的正如预期的那样总是更小,但两个向量的大小变化很大。 这里是 output 第一种情况: 第二种情况: 仅通过 ...

使用 AutoBench 对大输入进行测试时,标准报告无效 - Invalid Criterion report when testing on large inputs with AutoBench

几天以来,我一直在使用 AutoBench 测试欧拉筛在不同输入尺寸上的性能。 我的测试只是要求欧拉筛生成的列表中的第 n 个素数。 虽然 Criterion 在 n 的小输入上效果很好,但当 n 大于 7000 时,它似乎无法生成有效的报告。 这是我测试的 Input.hs 文件: 这是我得到的错 ...

如何在Haskell中使用Control.DeepSeq完全评估递归数据类型? - How to fully evaluate a recursive data type using Control.DeepSeq in Haskell?

我正在尝试使用一种递归数据类型的函数(使用Criterion )进行基准测试。 我找到了一个类似的问题 ,答案是我无法申请我的案子。 对于非递归数据类型,以下工作原理: 但是,执行以下操作: 当我想要基准的函数调用Criterion.Main的nf函数时,会产生错误,该函数具 ...

将随机生成的列表作为参数传递给Haskell - Passing a randomly generated list as a parameter in Haskell

我是Haskell的新手,确实遇到了整个IO问题。 我试图找出在Haskell中遍历列表需要多长时间。 我想生成一个随机数列表,并将其作为参数传递给函数,以便我可以打印列表中的每个元素。 我正在使用CRITERION软件包作为基准。 这是代码: 运行代码时出错: ...

全球/本地环境影响Haskell的Criterion基准测试结果 - Global / local environment affects Haskell's Criterion benchmarks results

我们正在对公司中的某些Haskell代码进行基准测试,而我们遇到了一个非常奇怪的案例。 这是一个代码,它对同一事物进行两次基准测试。 前者使用为所有测试创建一次的Criterion.env ,后者使用每项测试创建env。 这是唯一的区别,但是为每个工作台创建环境的运行速度提高了5倍。 ...

基准测试过滤器和分区 - Benchmarking Filter and Partition

我认为,我正在测试列表的partition功能的性能并得到一些奇怪的结果。 我们有partition p xs == (filter p xs, filter (not . p) xs)但是我们选择了第一个实现,因为它只对列表执行一次遍历。 然而,我得到的结果表明,使用使用两次遍历的实现 ...

可以将标准用于跨多个内核的并发分析吗? - Can criterion be used for profiling concurrency across multiple cores?

我注意到,当我运行使用-O2 -rtsopts -threaded -eventlog和+RTS -N2 -ls编译的标准基准测试(不包含forkIO或par )时,实际工作(而不仅仅是GC)分布在两个内核上。 标准来源的快速grep并未显示并行性起源于何处。 我想做一些仔细的基准测试, ...

初始化标准中的基准并从结果中排除初始化时间 - Initialize benchmark in criterion and exclude initialization time from results

我需要对IO一些代码进行基准测试,并且标准支持非常好。 但我想执行一些初始化步骤(每个基准测试都不同)。 天真的方法: 但它会为每个基准测试运行执行初始化和清理(默认情况下为100次),并包括最终结果的初始化时间。 是否可以排除初始化时间? ADDED:代码使用全局状态(实际 ...

在不同大小的输入上运行Haskell基准测试 - Run Haskell benchmarks on inputs of varying size

我经常想比较同一函数的多个实现的运行时性能。 对于个人投入,标准是一个很好的工具。 但是,在不同的输入大小上绘制代码性能的简单方法是什么,例如,查看算法的复杂性? 理想情况下,我向库传递一个类型为Benchmarkable r => [(String, Int -> r ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM