哈斯克尔测量功能性能(Haskell measuring function performance)

2019-08-19 00:53发布

在Haskell,我怎么能“简单”测量功能的性能。 例如,它需要多长时间来运行,也多少内存需要? 我知道纹的,但是,有没有不需要我过多的更改我的代码更简单的方法?

Answer 1:

测量需要多长时间来运行和多少内存占用是两个独立的问题,即:基准测试和分析。 Haskell有一个定义良好的一套方法为两种工具。 没有解决的问题,需要你做出实际的应用程序的代码进行任何更改。

标杆

这是库的使用完成。 目前在这一领域,这是在的意见,即建议在Niklas一个最终的胜利者标准 。 该库设计得非常好,是不是很难使用,并产生一个非常详细的数据 。

工作流程是这样的:你创建一个包含基准的建立一个独立的模块,编译它,并选择运行它。 为了得到一个参考可用的选项与运行--help修改。

你可以找到的安装模块的例子在这里 。

剖析

有足够的好材料了,所以我就直接把它们:

  • 在分析一般参考
  • 在真实世界哈斯克尔一个教程
  • 与惊天动地剖析教程


Answer 2:

有关职能如何进行个人相互比较非常粗糙的信息,您可以使用ghci中

Prelude> :set +s
Prelude> last [1..100000000]
100000000
(1.65 secs, 4000685276 bytes)

你需要知道,ghci的不编译代码,因此运行速度比GHC慢得多 ,时间和内存使用情况的数据是近似的,而且绝对没有优化已经完成。

这意味着,它可以让你只想着如何(在)高效的代码是一个非常粗略的想法,而且是无可替代的标杆正确和编译和优化代码分析,在详细尼基塔沃尔科夫的答案 。



文章来源: Haskell measuring function performance