如何使用' -auto'仅编译某些模块?成本中心?

时间:2013-05-02 03:41:59

标签: haskell profiling ghc

我正在使用ghc的选项-fprof选项分析程序,以自动创建成本中心。如果我只有特定模块的成本中心,那么分析输出将更容易理解。

首先将所有内容编译为ghc --make main.hs -rtsopts -prof,然后将某些模块重新编译为ghc -c SomeMod.hs -rtsopts -prof -fprof-auto,这对我来说似乎是正确的解决方案。

来自-fprof选项的GHC manual

  

这些不必一致地用于程序中的所有模块。

但是如果你这样做,那么一旦你再次尝试编译main.hs,重新编译检查器就会检测到“标志已经改变”。我还试过ghc --make main.o认为我应该从前面任一步骤中创建的目标文件开始,但是没有成功链接。

我碰巧发现在适当的模块中放置{-# OPTIONS_GHC -fprof-auto #-} pragma可实现预期目标。这真的是唯一的方法吗?

1 个答案:

答案 0 :(得分:3)

使用OPTIONS_GHC(正如您所发现的)我将如何做到这一点。假设你使用阴谋,我想不出任何其他方式。