仅使用GHC描述单个功能(或成本中心)

Kar*_*arl 10 profiling haskell ghc

我试图使用GHC分析工具分析一些Haskell代码.然而,我最感兴趣的成本中心目前由一堆我并不真正关心的初始化代码主导.

我的代码粗略看起来像这样:

main = do
  x <- lotsOfInitialization
  print $ {-# SCC "myCostCenter" #-} interestingPart x
Run Code Online (Sandbox Code Playgroud)

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

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

我也尝试过严格的注释x,但这似乎没有改变任何东西.

有没有办法告诉GHC忽略初始化代码,或只关注我想要的部分?

Chr*_*amm 3

根据ghc 手册,您可以使用 -hc\xe2\x9f\xa8name\xe2\x9f\xa9 或 -hy\xe2\x9f\xa8type\xe2\x9f\xa9 对某些成本中心进行堆分析。

\n\n

不过,我找不到对时间分析执行类似操作的解决方案。

\n\n

编辑:

\n\n

我确实设法找到一种方法来方便地完成分配和时间分析所需的操作。如果您对文件使用利润.prof可视化工具,您可以将某个成本中心的绩效概况视为格式良好的树形图。

\n