使用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可视化工具,则可以将某个成本中心的性能配置文件视为格式良好的树形图。
上一篇: Profile only a single function (or cost center) with GHC