如何仅使用“-auto”成本中心编译某些模块?
Posted
技术标签:
【中文标题】如何仅使用“-auto”成本中心编译某些模块?【英文标题】:How do I compile only certain modules with '-auto' cost centers? 【发布时间】:2013-05-02 03:41:58 【问题描述】:我正在使用 ghc 的选项 -fprof
选项来分析程序以自动创建成本中心。如果我只有来自特定模块的成本中心,分析输出会更容易理解。
首先将所有内容编译为ghc --make main.hs -rtsopts -prof
,然后将一些模块重新编译为ghc -c SomeMod.hs -rtsopts -prof -fprof-auto
,这对我来说似乎是正确的解决方案。
来自GHC manual 选项上的-fprof
:
这些不必一致地用于程序中的所有模块。
但是,如果您这样做,那么一旦您再次尝试编译 main.hs
,重新编译检查器就会检测到“标志已更改”。我还尝试了ghc --make main.o
,认为我应该从前面任一步骤中创建的目标文件开始,但没有成功链接。
我碰巧发现将-# OPTIONS_GHC -fprof-auto #-
pragma 放在适当的模块中可以达到预期的目标。这真的是唯一的方法吗?
【问题讨论】:
【参考方案1】:使用OPTIONS_GHC
(如您所见)是我的做法。假设您使用 cabal,我想不出任何其他方法。
【讨论】:
以上是关于如何仅使用“-auto”成本中心编译某些模块?的主要内容,如果未能解决你的问题,请参考以下文章
Nginx编译配置脚本篇- 模块配置脚本auto/modules