使用GHC只配置一个功能(或成本中心)

我正在尝试使用GHC分析工具来分析一些Haskell代码。 然而,我最感兴趣的成本中心目前主要是由一堆我并不关心的初始化代码。

我的代码大致如下所示:

main = do
  x <- lotsOfInitialization
  print $ {-# SCC "myCostCenter" #-} interestingPart x

在我的实际代码中, lotsOfInitialization部分占用了大约98%的时间,因此很难以任何粒度查看interestingPart发生的事情。

我认为只在一个地方注释(而不是使用-fprof-auto )就足够了,但是我得到的报告仍然显示了所有的函数调用。

我也在x上尝试过一个严格的注解,但是这似乎没有改变任何东西。

有什么方法可以告诉GHC忽略初始化代码,或只关注我想要的部分?


根据ghc手册,您可以通过例如使用-hc⟨name⟩或-hy⟨type⟩对某些成本中心进行堆分析。

虽然我找不到类似于时间分析的解决方案。

编辑:

我确实设法找到一种方法来方便地执行分配和时间分析所需的操作。 如果您使用.prof文件的profiteur可视化工具,则可以将某个成本中心的性能配置文件视为格式良好的树形图。

链接地址: http://www.djcxy.com/p/43387.html

上一篇: Profile only a single function (or cost center) with GHC

下一篇: ambiguity error with `reads` in ghc