haskell - 如何仅编译具有 '-auto' 成本中心的某些模块?

标签 haskell profiling ghc

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

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

来自GHC manual关于-fprof选项:

These do not have to be used consistently for all modules in a program.

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

我偶然发现将 {-# OPTIONS_GHC -fprof-auto #-} pragma 放入适当的模块中可以实现预期目标。这真的是唯一的方法吗?

最佳答案

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

关于haskell - 如何仅编译具有 '-auto' 成本中心的某些模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329979/

相关文章:

haskell - 浮点到带有可选小数点的字符串

haskell - 分析 Haskell,无需安装所有依赖项的分析库

haskell - Haskell 中的函数类型特化

haskell - 编写涉及 rank-n 类型的重写规则

haskell - 如何使用 GHC 在近机器级别可靠地影响生成的代码?

haskell - 更喜欢 Reader monad 而不是直接将环境作为参数传递

haskell - 如何使用 Haskell 的堆栈构建工具导出 C/C++ 使用的库?

haskell - 在 haskell 中加入或合并函数

c++ - 使用 Graphviz for Windows 程序可视化函数调用

visual-studio-2010 - 无法在 VS 2010 中启动探查器