1
180
< Buff行情>
如何找出这个解决方案如此缓慢的原因。有没有命令告诉我大部分的计算时间花在哪里,这样我就知道我的haskell程序的哪个部分是慢的? < /块引用> 正是!GHC提供了许多优秀的工具,包括:
关于使用时间和空间分析的教程是 part of real world haskell.> gc statistics 首先,确保您正在使用ghc-o2进行编译。你可以确定它是一个现代的GHC(例如,GHC 6.12.x) 我们可以做的第一件事是检查垃圾收集是否是问题所在。 用+rts-s运行程序
|
2
58
Dons的回答很好,但不会因为直接解决问题而成为干扰者。
下面是一个例子,您给出的代码为(*)、绿色正常、红色缓慢:
一直在创建除数列表。这表明您可以做一些事情:
|
3
3
Haskell相关说明:
数学相关注释:不需要检查所有的除数,直到n/2,这就足够检查sqrt(n)。 |
4
1
可以使用标志运行程序以启用时间分析。像这样:
它应该运行程序并生成一个名为program.stats的文件,该文件将具有在每个函数中花费的时间。您可以在GHC中找到有关使用GHC进行分析的更多信息 user guide . 对于基准测试,有标准库。我找到了 this 博客文章有一个有用的介绍。 |
KWMuller · 如何在Netbeans中访问调用计数? 7 年前 |
Tim · 测量所有目标(包括相关目标)的xcodebuild持续时间 7 年前 |
Bram · 如何启动和停止性能采样 7 年前 |
GoodGoodMan · 如何测量C代码中方法的cpu和内存使用率 7 年前 |
JumpingJezza · 读取2D矩阵的最快方法 7 年前 |
Mayank · 作为后台服务运行的行分析python代码 7 年前 |