3

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

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

GHC 手册中的-fprof选项:

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

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

我碰巧发现{-# OPTIONS_GHC -fprof-auto #-}在适当的模块中放置一个编译指示可以达到预期的目标。这真的是唯一的方法吗?

4

1 回答 1

3

使用OPTIONS_GHC(如您所见)是我的做法。假设您使用 cabal,我想不出任何其他方法。

于 2013-05-02T04:25:01.670 回答