2013-05-02 58 views
3

我正在使用ghc的選項-fprof選項來分析程序,以自動創建成本中心。如果我只有特定模塊的成本中心,那麼分析輸出將更容易理解。如何僅使用'-auto'成本中心編譯某些模塊?

首先將所有內容編譯爲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 #-}編譯指示可實現預期的目標。那真的是唯一的方法嗎?

回答

3

使用OPTIONS_GHC(正如你發現的)是我該怎麼做的。假設你使用cabal,我想不出任何其他方式。